メインコンテンツへスキップ

Apple署名

iOS証明書ジェネレーター

Macを使わずにiOSの配布用または開発用証明書を作成します。ここで証明書署名要求(CSR)と秘密鍵を生成し、CSRをAppleにアップロードして、発行された証明書を署名用の.p12ファイルに変換します。

  • Keychain AccessやMacを使わずに、Windows、Linux、またはmacOSからApple対応のCSRを作成します。
  • Apple Distribution (App Store, TestFlight, ad hoc) および Apple Development 証明書に対応しています。
  • 発行された .cer をこのページ上で直接 .p12 に変換できます。Xcode、fastlane、CI、または Capgo Cloud Build でそのまま利用可能です。

ワークフロー

  1. 1. 署名リクエストに含める証明書の Subject 詳細を入力してください。
  2. 2. CSR と対応する秘密鍵をダウンロードします。
  3. 3. Apple Developer で証明書を作成する際に、この CSR をアップロードしてください。
  4. 4. 下のステップ 2 で、発行された .cer と秘密鍵をパスワード保護された .p12 に変換します。

ステップ 1

CSRと秘密鍵の生成

Apple の証明書リクエストに反映させたい個人または組織の情報を入力してください。

出力

生成された署名リクエスト

CSRが生成されるまで何も表示されません。生成後、両方のファイルをダウンロードし、秘密鍵は安全に保管してください。

証明書リクエストを生成すると、ここに詳細情報とダウンロードボタンが表示されます。

ステップ 2

Appleの .cer を .p12 に変換

Appleから証明書が発行されたら、 .cer とステップ1の秘密鍵を組み合わせて、パスワード保護された .p12 を作成します。Xcode、fastlane、CI、または Capgo Cloud Build で利用可能です。

すべてブラウザ上で実行されます。 証明書、秘密鍵、パスワードはローカルで読み取られるだけで、サーバーにアップロードされることはありません。

Apple Developerから取得した distribution.cer または development.cer ファイル。DER形式とPEM形式の両方に対応しています。

AppleにアップロードしたCSRと一緒にダウンロードした ios-private-key.pem ファイル。

出力内容

.p12署名アイデンティティ

.cerファイルと秘密鍵を選択し、パスワードを設定して.p12を作成します。macOS KeychainやXcodeで利用可能な、SHA-1 MACを用いた3DES暗号化形式で生成されます。

基本情報

iOS署名証明書とは?

AppleはすべてのiOSアプリに対してcode署名を求めています。署名証明書は、ビルドがApple Developerチームのメンバーによって行われたことを証明するもので、iOSは署名が信頼できないアプリのインストールや起動を拒否します。

作成には3つのファイルが必要です。まず、 CSR (.csr)は公開鍵とアイデンティティを保持し、Appleに送信されます。次に、 秘密鍵 (.pem) は手元に残ります。一方、 証明書 (.cer) は Apple から発行されるものです。ビルドツールでは、証明書と秘密鍵をセットにした .p12 ファイル。

Mac のキーチェーンアクセスでは、CSR を作成すると秘密鍵はログインキーチェーン内に隠されます。このジェネレーターは両方のファイルを直接提供するため、Windows、Linux、または CI ランナーから Apple Distribution や Apple Development 証明書を作成でき、常に鍵の場所を把握できます。

セキュリティとプライバシー

秘密鍵の取り扱いについて

  • CSR と RSA 2048ビットの秘密鍵は、ステートレスな Capgo エンドポイントによって HTTPS 経由でオンデマンドに生成され、ブラウザに直接返されます。
  • レスポンスは以下とともに送信されます: Cache-Control: no-store. データベースへの保存や、レスポンス後の保持は一切行われません。
  • CSRはApple Developerが求めるSHA-256で署名されます。AppleにアップロードされるのはCSRのみで、秘密鍵は手元に残ります。
  • .cerから.p12への変換はすべてブラウザ上で実行されます。証明書、秘密鍵、パスワードがアップロードされることはありません。
  • アカウント作成やサインアップは不要です。なお、悪用防止のためリクエストにはレート制限が設けられています。

ローカルで鍵を生成したい場合は?以下のOpenSSLコマンドで同じ2つのファイルを作成できます。

同等のOpenSSLコマンド
openssl req -new -newkey rsa:2048 -nodes \
  -keyout ios-private-key.pem \
  -out ios-certificate-request.csr \
  -subj "/emailAddress=jane@company.com/CN=Jane Doe/C=US"

ステップバイステップ

Macを使わずにiOS配布用証明書を作成する方法

CSRの作成からTestFlightでの署名済みビルドまで。すべての工程がWindows、Linux、macOSのブラウザとターミナルで完結します。

  1. ステップ 1

    CSRと秘密鍵の生成

    上のフォームに名前、メールアドレス、2文字の国コード code を入力し、「Generate CSR and private key」を選択してください。両方のファイルをダウンロードし、秘密鍵は安全に保管してください。

  2. ステップ 2

    Apple Developerで証明書を作成する

    developer.apple.comにサインインし、Certificates, Identifiers & Profilesを開きます。プラスボタンを選択し、Apple DistributionまたはApple Developmentを選択してください。

  3. ステップ 3

    CSRをアップロードして .cer をダウンロードする

    ios-certificate-request.csrファイルをアップロードして続行し、発行された証明書(通常はdistribution.cerまたはdevelopment.cer)をダウンロードします。

  4. ステップ 4

    .cer を .p12 ファイルに変換する

    このページのステップ2にある .cer から .p12 へのコンバーターを使用します。.cerと秘密鍵を選択し、パスワードを設定して .p12 をダウンロードしてください。ブラウザ上で実行されるほか、OpenSSLコマンドを使用することも可能です。

  5. ステップ 5

    プロビジョニングプロファイルを作成する

    Apple Developerで、App IDに対してApp Store、ad hoc、またはdevelopment用のプロビジョニングプロファイルを作成し、新しい証明書を選択します。

  6. ステップ 6

    アプリの署名とリリース

    .p12とプロファイルをXcode、fastlane、CIのシークレット、またはCapgo Cloud Buildにインポートして、アプリをビルドし、TestFlightやApp Storeへアップロードしましょう。

出力結果を使う

.p12でiOSアプリに署名する

最短ルートは、 ブラウザで使える.cerから.p12へのコンバーター 上記です。 コマンドライン派ですか?OpenSSLでも同様のことが可能です。エクスポート用のパスワードを求められますが、それがそのまま.p12のパスワードになります。

OpenSSLで.p12を作成する

OpenSSLはmacOSや主要なLinuxディストリビューションにプリインストールされており、WindowsではGit BashやWSLから利用できます。

.cerを.p12に変換する
# 1. Convert Apple's DER .cer to PEM
openssl x509 -inform DER -in distribution.cer -out distribution.pem

# 2. Bundle the certificate and private key into a .p12
#    -legacy (OpenSSL 3) keeps the file compatible with macOS Keychain.
#    Drop it on OpenSSL 1.1 or LibreSSL, which do not support the flag.
openssl pkcs12 -export -legacy \
  -inkey ios-private-key.pem \
  -in distribution.pem \
  -name "Apple Distribution" \
  -out distribution.p12

Capgo Cloud Build

.p12とプロビジョニングプロファイルを一度保存すれば、あとは Capgo で iOS と Android アプリをクラウド上でビルド・署名.

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform ios \
  --certificate ./distribution.p12 \
  --p12-password "your-p12-password" \
  --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
  --apple-team-id "TEAM123456"

fastlane と Xcode

Mac の場合は .p12 をダブルクリックして Keychain にインポートすれば Xcode で認識されます。CI ランナーでは、fastlane を使って一時的な keychain にインポートしてください。

Fastfile
import_certificate(
  certificate_path: "distribution.p12",
  certificate_password: ENV["P12_PASSWORD"],
  keychain_name: "build.keychain",
  keychain_password: ENV["KEYCHAIN_PASSWORD"]
)

CI シークレットとキーのチェック

GitHub Actions や GitLab シークレット用に署名ファイルをエンコードし、証明書が秘密鍵と一致していることを確認します。

base64 と OpenSSL
# Encode the .p12 and profile for CI secrets
base64 -i distribution.p12 | tr -d '\n' > p12.base64
base64 -i profile.mobileprovision | tr -d '\n' > profile.base64

# Check that the certificate and key match (both hashes must be equal)
openssl x509 -noout -modulus -in distribution.pem | openssl md5
openssl rsa -noout -modulus -in ios-private-key.pem | openssl md5

トラブルシューティング

iOS 証明書のよくあるエラーと解決策

入力されたパスワードが正しくありません (Keychain インポート)
OpenSSL 3 は、macOS Keychain が拒否するアルゴリズムで .p12 ファイルを暗号化します。上記の -legacy フラグを付けて OpenSSL 3 で .p12 を再エクスポートしてください。
プライベートキーに一致する証明書がありません
.cer が異なる CSR に対して発行されています。その CSR と共にダウンロードしたプライベートキーを使用するか、証明書を失効させて新しい CSR でやり直してください。
証明書を読み込めません
Apple は .cer ファイルを DER 形式で提供しています。openssl x509 で .cer を変換する際は -inform DER を追加してください。
プロビジョニングプロファイルに署名用証明書が含まれていません
プロファイルは特定の証明書に紐付けられています。新しい証明書を作成した後、プロビジョニングプロファイルを編集または再生成してから、再度ダウンロードしてください。
証明書の最大数に達しました
Apple はチームが保持できる配布用証明書の数を制限しています。不要なものは Apple Developer で失効させてください。App Store で公開中のアプリには影響ありません。
Keychain で証明書が信頼されていません
Apple PKI から最新の Apple Worldwide Developer Relations (WWDR) 中間証明書をインストールしてから、再度 .p12 をインポートしてください。

署名後

ストアの審査を待たずに Web の修正をリリース

ネイティブバイナリに署名が済めば、Capgo live updates で Capacitor の Web レイヤー変更を OTA 配信できます。チャンネル、ロールバック、既存の CI/CD もそのまま使えます。 OTA を同じリリースフローに組み込む準備ができたら、無料で試せます。

よくある質問

iOS 証明書ジェネレーター FAQ

CSR、証明書の種類、.p12 変換、Apple Developer アカウント、CI やクラウドビルドでの証明書の使い方に関する回答です。

この iOS 証明書ジェネレーターは何を作成しますか?

Certificate Signing Request (.csr) と、対応する RSA 2048 ビット秘密鍵 (.pem) を作成します。CSR を Apple Developer にアップロードして Apple Distribution または Apple Development 証明書 (.cer) を取得し、.cer と秘密鍵を組み合わせて、Xcode、fastlane、CI、Capgo Cloud Build で使える .p12 ファイルにします。

Certificate Signing Request (CSR)とは何ですか?

CSRは、公開鍵と識別情報(名前、メールアドレス、国など)を含み、秘密鍵で署名された小さなファイルです。Appleはこれを使用して、その鍵に紐付けられた署名証明書を発行します。秘密鍵がAppleに渡ることは決してないため、このツールで生成される .pem ファイルは必ず大切に保管してください。

MacがなくてもiOS配布用証明書を作成できますか?

はい、可能です。ここでCSRと秘密鍵を生成し、任意のブラウザからApple DeveloperポータルにCSRをアップロードして .cer をダウンロードしてください。その後、このページのステップ2にあるコンバーターを使って .p12 に変換します。Windows、Linux、macOSのいずれからでも動作するため、どの工程でもKeychain Accessは必要ありません。

Apple Developerではどの証明書タイプを選択すべきですか?

Xcodeから登録済みのテストデバイスでビルドを実行する場合は「Apple Development」を選択してください。App Store、TestFlight、またはad hoc配布用のビルドに署名する場合は「Apple Distribution」を選択してください。どちらのタイプでも同じCSRを使用できます。タイプは本ツールではなく、Apple Developer側で選択します。

秘密鍵はサーバーに保存されますか?

いいえ。ステップ1では、CSRと秘密鍵はHTTPS経由のステートレスな Capgo エンドポイントによってオンデマンドで生成され、Cache-Control: no-store を指定してブラウザに直接返されます。これらがデータベースに書き込まれたり、レスポンス後に保持されたりすることはありません。ステップ2の .cer から .p12 へのコンバーターは、すべてブラウザ上で動作し、何もアップロードしません。ローカルでの鍵生成がポリシーで定められている場合は、このページにあるOpenSSLコマンドを使用してください。

.cerファイルを.p12に変換する必要があるのはなぜですか?

Appleから提供される.cerファイルには公開証明書のみが含まれています。アプリの署名には秘密鍵も必要なため、ビルドツールは証明書と秘密鍵をパスワードでまとめた.p12ファイルを必要とします。

.cerを.p12に変換する方法は?

このページのステップ2を使用してください。Appleから取得した.cer(DERまたはPEM形式)と、CSR作成時に使用した秘密鍵.pemを選択し、パスワードを入力して「Build .p12 file」を選択します。ブラウザ上で証明書と鍵の整合性を確認し、macOS Keychain、Xcode、fastlaneで利用可能な3DES暗号化された.p12を生成します。データがアップロードされることはありません。また、CIのシークレット用に.p12をbase64形式でコピーすることも可能です。

Apple Developerアカウントは必要ですか?

はい。CSRのアップロードや署名証明書の発行には、Apple Developer Programの有料メンバーシップ(年額99 USD、または社内配布用のEnterpriseプログラム)が必要です。CSR自体の生成にはアカウントは不要です。

iOS署名証明書の有効期限はどのくらいですか?

Apple DevelopmentおよびApple Distribution証明書の有効期限は1年間です。App Storeですでに公開されているアプリは、証明書の期限切れや失効後も動作し続けますが、次回のビルドを署名するには新しい証明書とプロビジョニングプロファイルが必要になります。

同じCSRや秘密鍵を再利用できますか?

可能ですが、証明書ごとに新しいキーペアを作る方が安全で、ローテーションも簡単です。やってはいけないのは、それらを混在させることです。.cer は、その CSR を作成した秘密鍵と完全に一致するものだけが使えます。キーを紛失した場合は、証明書を失効させて新しい CSR を生成してください。

この CSR をプッシュ通知(APNs)証明書に使用できますか?

はい。Apple でも APNs SSL 証明書を作成する際に CSR を求められます。新規アプリなら、有効期限がなくすべてのアプリで使える APNs 認証キー(.p8)の方が通常は簡単です。

Capgo Native Build

Capgo で iOS と Android アプリをクラウドでビルド・署名

このツールで作成した .p12 と provisioning profile をアップロードし、CI からリリースビルドをトリガーして、自前のビルドファームを維持せずに TestFlight や App Store へ配信できます。

Native Build を詳しく見る