APNペイロードデータのホスティングサーバーに保存される.pemファイルを作成するにはどうすればよいですか?
From: blog.boxedice.com とJoe Pezzilloによる「iPhone Advanced Projects」の第10章です。
キーチェーンにaps_developer_identity.cerがある場合:
apns-dev-cert.p12
ファイルとして保存します。パスワードを入力する必要はありません。次のコマンドは、PEM形式(プライバシー強化メールセキュリティ証明書)のMacのターミナルで証明書を生成します。
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をマージする必要があります
コマンド:cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (If 3rd step is performed )
コマンド:cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem (if not)
ステップ5:証明書の有効性とAPNSへの接続を確認します
コマンド:openssl s_client -connect gateway.sandbox.Push.Apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem (If 3rd step is not performed )
コマンド:openssl s_client -connect gateway.sandbox.Push.Apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem (If performed )
生産段階:
ステップ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を取得する必要があります
コマンド:cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem (If 3rd step is performed )
コマンド:cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem (if not)
ステップ5:証明書の有効性とAPNSへの接続を確認します
コマンド:openssl s_client -connect gateway.Push.Apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem (If 3rd step is not performed )
コマンド:openssl s_client -connect gateway.Push.Apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem
(実行した場合)
手順:
これにより、3つのファイルが得られます。
PushChatKey.p12
)aps_development.cer
ファイルをダウンロードしたフォルダー(私の場合はデスクトップ)に移動します。
$ cd ~/Desktop/
.cerファイルを.pemファイルに変換します。
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
秘密鍵の.p12ファイルを.pemファイルに変換します。
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
インポートパスワードを入力してください:
MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
まず、opensslが読み取れるように、.p12ファイルのパスフレーズを入力する必要があります。次に、PEMファイルの暗号化に使用される新しいパスフレーズを入力する必要があります。このチュートリアルでも、PEMパスフレーズとして「プッシュチャット」を使用しました。より安全なものを選択する必要があります。注:PEMパスフレーズを入力しない場合、opensslはエラーメッセージを表示しませんが、生成された.pemファイルには秘密鍵が含まれません。
最後に、証明書とキーを単一の.pemファイルに結合します。
$ cat PushChatCert.pem PushChatKey.pem > ck.pem
ターミナルアプリケーションを起動し、プロンプトの後に次のコマンドを入力します
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
->> Apple独自のチュートリアル <<-は、私が遭遇した唯一の作業セットです。それは簡単で、Linux phpサーバーとwindows phpサーバーの両方でうまく機能することを確認できます。
ページの一番下に、5段階のPem作成プロセスがあります。
こちらをご覧ください。証明書の作成から、アプリキーからプロビジョニングプロファイル、最終的にはPEMまで、画像を使用して詳細なプロセスを説明しています。 http://docs.moengage.com/docs/apns-certificate-pem-file
もっと簡単な解決策を提案します。 Certifire を使用するだけです。
Certifire は、数秒でワンクリックでAppleプッシュ通知証明書を生成するmacOSアプリケーションです。
手順は次のとおりです。
1。アプリをダウンロードします。
2。 Apple開発者アカウントの資格情報を使用してログインします。
3。 App-IDを選択してください
4。 「生成」ボタンをクリックします
5。できました!
.pem形式および.p12形式のAPN証明書を取得します。さらに、.pemと.p12(key + cert)も結合されます!
さらに、これらすべての証明書のパスフレーズなしバージョンも入手できます!
OpenSSL (リンクはWin32インストーラーに移動し、ライトバージョンではなく最新バージョンを選択)をインストールした後、これがWindows 7での方法です。
この方法では、Appleからダウンロードした.cer
ファイルのみが必要です。
c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM
これにより、秘密鍵も追加する必要があるファイルが作成されます。
-----プライベートキーを開始-----
MIIEuwIBADANBgkqhk .... etc
MIIEuwIBADANBgkqhk .... etc
MIIEuwIBADANBgkqhk .... etc
MIIEuwIBADANBgkqhk .... etc
----- ENDプライベートキー-----
-----証明書の開始-----
AwIBAgwIBADAwIBADA .... etc
AwIBAgwIBADAwIBADA .... etc
AwIBAgwIBADAwIBADA .... etc
----- END CERTIFICATE -----
それでおしまい。
注:これらのタスクを実行するには、App Store Connectでチームエージェントまたは管理者の役割が必要です。 App Store Connectのチームの一員ではない場合、これはおそらく影響しません。
IOSアプリケーションにプッシュ通知を送信するには、暗号化キーを作成する必要があります。これまでは、SSLキーと証明書を使用する面倒なプロセスでした。各SSL証明書は、単一のiOSアプリケーションに固有のものでした。 2016年Appleは、より信頼性が高く使いやすい新しい認証キーメカニズムを導入しました。新しい認証キーはより柔軟で、メンテナンスが簡単で、iOSアプリ以上のものに適用できます。
認証キーが導入されてから何年も経っていますが、すべてのサービスがそれらをサポートしているわけではありません。 FireBaseとAmazon Pinpointは認証キーをサポートしています。 Amazon SNS、Urban Airship、Twilio、LeanPlumはサポートしていません。多くのオープンソースソフトウェアパッケージはまだ認証キーをサポートしていません。
必要なSSL証明書を作成し、公開鍵と秘密鍵を含むPEMファイルとしてエクスポートするには:
Apple Developer Center WebサイトでアプリのSSL証明書を既に設定している場合は、スキップして証明書をPEM形式に変換することができます。 Appleにアップロードされた署名要求を作成したMacで生成された秘密キーがないalsoがないと、問題が発生することに注意してください。
その秘密鍵の追跡を失わないようにする方法を確認してください。
Xcodeは、プッシュ通知の証明書またはキーを制御しません。キーを作成してアプリのプッシュ通知を有効にするには、Apple Developer Center Webサイトにアクセスする必要があります。アカウントの証明書、識別子、プロファイルセクションは、アプリIDと証明書を制御します。
証明書とプロファイルにアクセスするには、有料のApple Developer Programメンバーシップを持っているか、そうするチームの一員でなければなりません。
プッシュ通知を使用するアプリは、ワイルドカードアプリIDまたはプロビジョニングプロファイルを使用できません。各アプリでは、Apple Developer CenterポータルでアプリIDレコードを設定して、プッシュ通知を有効にする必要があります。
プッシュ通知用のSSL証明書の作成は、いくつかのタスクのプロセスです。各タスクにはいくつかのステップがあります。これらはすべて、P12またはPEM形式でキーをエクスポートするために必要です。先に進む前に手順を確認してください。
証明書を作成するには、Macで証明書署名要求(CSR)を作成し、Appleにアップロードする必要があります。
後でこの証明書をpkcs12(別名p12)ファイルとしてエクスポートする必要がある場合は、同じMacのキーチェーンを使用する必要があります。署名要求が作成されると、Keychain Accessはデフォルトのキーチェーンに一連のキーを生成します。これらのキーは、Appleが署名要求から作成する証明書を操作するために必要です。
開発に使用する資格情報専用のキーチェーンを用意することをお勧めします。これを行う場合は、証明書アシスタントを使用する前に、このキーチェーンがデフォルトに設定されていることを確認してください。
証明書署名要求を作成するとき、証明書アシスタントはデフォルトのキーチェーンに2つの暗号化キーを生成します。キーが正しいキーチェーンにあるように、開発キーチェーンをデフォルトにすることが重要です。
署名要求を作成すると、キーのペアが生成されました。署名要求をアップロードする前に、開発キーチェーンにキーがあることを確認してください。それらの名前は、署名要求で使用されるCommon Nameと同じになります。
証明書署名要求が作成されたら、Apple Developer Centerにアップロードします。 Appleは、署名要求からプッシュ通知証明書を作成します。
開発キーチェーンには、キーチェーンアクセスのMy Certificatesの下にプライベートキーを持つプッシュ証明書が表示されます。
この時点で、開発キーチェーンをバックアップする必要があります。多くのチームは、Push証明書を安全なUSBドライブに保持し、内部バージョン管理にコミットするか、Time Machineなどのバックアップソリューションを使用します。開発キーチェーンは、個人コード署名資格情報を含まないため、異なるチームメンバー間で共有できます。
キーチェーンファイルは
~/Library/Keychains
にあります。
サードパーティのプッシュサービスには、Privacy Enhanced Mail(PEM)形式の証明書が必要なものと、公開鍵暗号化標準#12(PKCS12またはP12)が必要なものがあります。 Appleからダウンロードした証明書は、これらの形式で証明書をエクスポートするために使用できますが、秘密鍵を保持している場合のみです。
.pem
ファイルを作成するのに必要なopenssl
コマンドを覚えていないので、プロセスを簡素化するためにこのbashスクリプトを作成しました。
#!/bin/bash
if [ $# -eq 2 ]
then
echo "Signing $1..."
if ! openssl pkcs12 -in $1 -out $2 -nodes -clcerts; then
echo "Error signing certificate."
else
echo "Certificate created successfully: $2"
fi
else
if [ $# -gt 2 ]
then
echo "Too many arguments"
echo "Syntax: $0 <input.p12> <output.pem>"
else
echo "Missing arguments"
echo "Syntax: $0 <input.p12> <output.pem>"
fi
fi
signpem.sh
などの名前を付けて、ユーザーのフォルダーに保存します(/Users/<username>
?)。ファイルを作成した後、chmod +x signpem.sh
を実行して実行可能にし、次を実行できます。
~/signpem myCertificate.p12 myCertificate.pem
そして、myCertificate.pem
が作成されます。
キーチェーンアクセスに既にapns p12ファイルがある場合、.Pemファイルを作成する最も簡単な方法があります。
ターミナルを開き、次のコマンドを入力します。
開発用 openssl pkcs12 -in apns-div-cert.p12 -out apns-div-cert.pem -nodes -clcerts
本番用 openssl pkcs12 -in apns-dist-cert.p12 -out apns-dist-cert.pem -nodes -clcerts
P12ファイルの名前を次の名前に変更します。apns-div-cert.p12それ以外の場合は、ファイル名を入力する必要があります。ありがとう!!