Appleプッシュ通知の設定に使用する.pemファイルを生成します


290

クライアントのアカウントから証明書を生成し、ターミナルを使用して.pemファイルを生成するたびに、.pemファイルを生成しようとしましたが、それは役に立ちません。誰もが段階的な手順を行うことができますか?

回答:


936

iOSアプリでプッシュ通知を有効にするには、Appleプッシュ通知証明書(.pemファイル)を作成してアップロードする必要があります。そうすると、AppleがAppleプッシュサーバーに接続できるようになります。

ここに更新されたスクリーンショットで更新されたバージョン

手順1:iOSプロビジョニングポータルにログインし、左側のナビゲーションバーで[証明書]をクリックします。次に、「+」ボタンをクリックします。

ここに画像の説明を入力してください

ステップ2:[配布]セクションで[Apple Push Notification service SSL(Production)]オプションを選択し、[続行]ボタンをクリックします。

ここに画像の説明を入力してください

ステップ3:BYOアプリに使用するアプリID(アプリIDの作成方法)を選択し、[続行]をクリックして次のステップに進みます。

ここに画像の説明を入力してください

手順4:「証明書署名要求(CSR)の作成について」の手順に従って、証明書署名要求を作成します。

ここに画像の説明を入力してください

アップルが提供する指示を補足するため。以下は、必要な手順を完了するのに役立つ追加のスクリーンショットの一部です。

ステップ4補足スクリーンショット1:Macのキーチェーンアクセスの証明書アシスタントに移動します。

ここに画像の説明を入力してください

ステップ4補足スクリーンショット2:証明書情報を入力します。続行をクリックします。

ここに画像の説明を入力してください

ステップ5:ステップ4で生成された「.certSigningRequest」ファイルをアップロードし、「生成」ボタンをクリックします。

ここに画像の説明を入力してください

ステップ6:[完了]をクリックして登録を完了すると、iOSプロビジョニングポータルページが次の画面のように更新されます。

ここに画像の説明を入力してください

次に、[ダウンロード]ボタンをクリックして、今作成した証明書(.cerファイル)をダウンロードします。-ダウンロードしたファイルをダブルクリックして、証明書をMacのキーチェーンアクセスにインストールします。

ステップ7:Macで[キーチェーン]に移動し、インストールしたばかりの証明書を探します。どの証明書が正しいかわからない場合は、「Apple Production IOS Push Services:」で始まり、その後にアプリのバンドルIDが続きます。

ここに画像の説明を入力してください

ステップ8:証明書を展開すると、自分の名前または会社名のいずれかを含む秘密鍵が表示されます。キーボードの「選択」キーを使用して両方の項目を選択し、右クリック(またはシングルボタンマウスを使用する場合はcmd-クリック)して、以下のように「2つの項目をエクスポート」を選択します。

ここに画像の説明を入力してください

次に、「pushcert.p12」という名前のp12ファイルをデスクトップに保存します。保護するためにパスワードの入力を求められます。Enterをクリックしてパスワードをスキップするか、必要なパスワードを入力できます。

ステップ9:最も難しい部分-Macで「ターミナル」を開き、次のコマンドを実行します。

cd
cd Desktop
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts

ステップ10:Build your Ownエリアへの誤アップロードを防ぐために、デスクトップからpushcert.p12を削除します。Macで「ターミナル」を開き、次のコマンドを実行します。

cd
cd Desktop
rm pushcert.p12

ステップ11-新しいAWS更新:pushcert.p12AWS SNSに送信する新規作成。新しいをダブルクリックしpushcert.pem、グリーンのハイライトされたもののみをエクスポートします。

ここに画像の説明を入力してください クレジット: AWSの新しいアップデート

これで、Appleプッシュ通知証明書(.p12ファイル)が正常に作成されました。このファイルは、後でBuild Your Ownエリアにアップロードする必要があります。:)


11
キーチェーンからPEMファイルに直接エクスポートできるようになりました(ステップ8〜10)。
カイルクレッグ2014年

10
@KyleClegg:どうやって?
eugene 14

3
「Build Your Own」エリアとは何ですか。なぜそこにPEMファイルをアップロードする必要があるのですか?
Rafi

1
なぜインターネット上のこれらすべての回答が、「自分で構築する」とは何かについて絶えず尋ねられる実際の質問を無視するのですか Xcodeを使用している場合、このPEMをどこにアップロードしますか?
RobertyBob 2017年

1
私の場合、p12 certから2つのpemファイルを作成する必要がありました。2つのアイテムを一緒にエクスポートするのではなく、証明書とキーファイルをそれぞれキーチェーンアクセスでエクスポートするだけです。しかし、この答えは間違いなく素晴らしいです!
2018

79

今日、はるかに簡単なソリューションがあります— pem。このツールは、生活をはるかに簡単にします。

たとえば、プッシュ通知証明書を生成または更新するには、次のように入力します。

fastlane pem 

そしてそれは1分以内に行われます。サンドボックス証明書が必要な場合は、次のように入力します。

fastlane pem --development

そして、それはかなりそれです。


9
そして、PEMだけではありません。fastlaneツール全体が完全に素晴らしい
Benjamin

アップル以外のシステムでも利用できますか?
Twicejr 2016

@KrauseFx、それをpemで生成した場合、どうやってそれをここに表示させるのですか:developer.apple.com/account/ios/certificate?これは、最新の有効期限などを確認するのに非常に便利です。これは自動的に行われることですか?
IonicBurger

1
@Nikola iTunes Connectでのアクションは不要です。その
PEM

1
@mikejd pemに使用するp12を指定する必要はありませんか?
Maulik

10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

これは機能しますか?この方法を使用してWindows 10でPEMファイルを作成しましたが、生成されたpemを使用してプッシュ通知を送信すると、「ssl:\ / \ / gateway.sandbox.push.apple.comに接続できません」というメッセージが表示されました。
Arivan Bastos 2017

3

Appleは、発行される証明書の名前を変更しました。開発と本番の両方で同じ証明書を使用できるようになりました。開発専用の証明書を要求することはできますが、生産専用の証明書を要求することはできません。

下のscrenshotを見てください


1

Cert.p12とkey.p12をエクスポートした後、それは非常に簡単です。'apns '.pemファイルを生成するためのコマンドを見つけてください。

https://www.sslshopper.com/ssl-converter.html

command to create apns-dev.pem from Cert.pem and Key.pem

    

openssl rsa -in Key.pem -out apns-dev-key-noenc.pem

    

cat Cert.pem apns-dev-key-noenc.pem > apns-dev.pem

上記のコマンドは、サンドボックスとプロダクションの両方に役立ちます。


1

プッシュ証明書の問題のトラブルシューティングによると

Apple Developer Programアカウントで入手できるSSL証明書には公開鍵が含まれていますが、秘密鍵は含まれていません。秘密鍵は、Appleにアップロードされた証明書署名要求を作成したMacにのみ存在します。Privacy Enhanced Mail(PEM)ファイルをエクスポートするには、公開鍵と秘密鍵の両方が必要です。

クライアントから提供された証明書から有効なPEMをエクスポートできない理由は、秘密鍵がないためです。証明書には公開鍵が含まれていますが、秘密鍵はおそらく元のCSRを作成したMacにのみ存在します。

次のいずれかを行うことができます。

  1. 最初にCSRを作成したMacから秘密鍵を取得してください。PEMのエクスポートはそのMacから行うことも、秘密鍵を別のMacにコピーすることもできます。

または

  1. 新しいCSR、新しいSSL証明書を作成し、今回は秘密鍵をバックアップします。

0

ありがとう!上記のすべての答えに。.p12ファイルがあることを願っています。ターミナルを開いて、次のコマンドを書き込みます。.12ファイルを置いたパスに端末を設定します。

$ openssl pkcs12 -in yourCertifcate.p12 -out pemAPNSCert.pem -nodes
Enter Import Password: <Just enter your certificate password>
MAC verified OK

これで.pemファイルが生成されました。

.pemファイルを確認する まず、テキストエディターで.pemを開いて、その内容を表示します。証明書の内容は、以下に示す形式である必要があります。PEMファイルに証明書の内容(BEGIN CERTIFICATEからEND CERTIFICATEまで)と証明書の秘密鍵(BEGIN PRIVATE KEYからEND PRIVATE KEYまで)の両方が含まれていることを確認します。

> Bag Attributes
>     friendlyName: Apple Push Services:<Bundle ID>
>     localKeyID: <> subject=<>
> -----BEGIN CERTIFICATE-----
> 
> <Certificate Content>
> 
> -----END CERTIFICATE----- Bag Attributes
>     friendlyName: <>
>     localKeyID: <> Key Attributes: <No Attributes>
> -----BEGIN PRIVATE KEY-----
> 
> <Certificate Private Key>
> 
> -----END PRIVATE KEY-----

また、SSLShopper 証明書デコーダに移動して証明書の有効性を確認し、証明書の内容(BEGIN CERTIFICATEからEND CERTIFICATEまで)を貼り付けて、以下に示すように証明書に関するすべての情報を取得します。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.