APN ペイロード データのホスティング サーバーに保存する .pem ファイルを作成するにはどうすればよいですか?
11 に答える
これが私がしたことです。From:blog.boxedice.comとJoePezzilloによる「iPhoneAdvancedProjects」の第10章。
キーチェーンにaps_developer_identity.cerを使用する場合:
- ローカルMacおよびログインキーチェーンからキーチェーンアクセスを起動し、証明書カテゴリでフィルタリングします。「AppleDevelopmentPushServices」と呼ばれる拡張可能なオプションが表示されます</li>
- 「AppleDevelopmentPushServices」を右クリック>「AppleDevelopmentPushServicesID123」をエクスポートします。
apns-dev-cert.p12
アクセスできる場所にファイルとして保存します。パスワードを入力する必要はありません。 次のコマンドは、MacのTerminal for PEM形式(プライバシー強化メールセキュリティ証明書)で証明書を生成します。
openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
サーバーで、chmod 400を使用して、この暗号化されていないキーのファイル権限を設定します。
開発段階:
ステップ 1: 証明書 .p12 から証明書 .pem を作成する
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
ステップ 2: Key .p12 から Key .pem を作成する
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
ステップ 3 (オプション): 2 番目のステップで求められたパスフレーズを削除する場合
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
ステップ 4:ここで、キー .pem と証明書 .pem をマージして、アプリの開発段階でのプッシュ通知に必要な開発 .pem を取得する必要があります。
3 番目のステップが実行された場合は、次を実行します。
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
3 番目のステップが実行されなかった場合は、次を実行します。
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
ステップ 5:証明書の有効性と APNS への接続を確認する
3 番目のステップが実行された場合は、次を実行します。
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem
3 番目のステップが実行されなかった場合は、次を実行します。
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
生産段階:
ステップ 1: 証明書 .p12 から証明書 .pem を作成する
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12
ステップ 2: Key .p12 から Key .pem を作成する
openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12
ステップ 3 (オプション): 2 番目のステップで求められたパスフレーズを削除する場合
openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem
ステップ 4:ここで、キー .pem と証明書 .pem をマージして、アプリケーションの本番フェーズでのプッシュ通知に必要な本番 .pem を取得する必要があります。
3 番目のステップが実行された場合は、次を実行します。
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem
3 番目のステップが実行されなかった場合は、次を実行します。
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem
ステップ 5:証明書の有効性と APNS への接続を確認します。
3 番目のステップが実行された場合は、次を実行します。
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem
3 番目のステップが実行されなかった場合は、次を実行します。
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem
ターミナル アプリケーションを起動し、プロンプトの後に次のコマンドを入力します。
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
->> Apple 独自のチュートリアル<<- は、私が遭遇した唯一の作業手順セットです。それは簡単で、Linux php サーバーと Windows php サーバーの両方で見事に動作することを確認できます。
ページの一番下に、5 ステップの pem 作成プロセスがあります。
もっと簡単な解決策をお勧めします。Certifireを使用するだけです。
Certifireは、数秒でワンクリックするだけで Apple プッシュ通知証明書を生成する macOS アプリケーションです。
手順は次のとおり
です。 1. アプリをダウンロードします。
2. Apple 開発者アカウントの資格情報を使用してログインします。
3. アプリ ID を選択します
。 4. [生成] ボタンをクリックします
。 5. 完了です。
.pem 形式と .p12 形式の APN 証明書を取得します。さらに、.pem と .p12 (キー + 証明書) を組み合わせることもできます。
さらに、これらすべての証明書のパスフレーズなしバージョンも入手できます。
これは、 OpenSSLをインストールした後、Windows 7で行った方法です(リンクはWin32インストーラーに移動し、ライトバージョンではなく最新バージョンを選択します)。
この方法では.cer
、Apple からダウンロードしたファイルのみが必要です。
c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM
これにより、秘密鍵も追加する必要があるファイルが作成されます。
-----BEGIN PRIVATE KEY-----
MIIEuwIBADANBgkqhk....etc
MIIEuwIBADANBgkqhk....etc
MIIEuwIBADANBgkqhk....etc
MIIEuwIBADANBgkqhk....etc
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
AwIBAgwIBADAwIBADA....etc
AwIBAgwIBADAwIBADA....etc
AwIBAgwIBADAwIBADA....etc
-----END CERTIFICATE-----
それでおしまい。