PUSH通知機能を持ったiPhoneアプリを作る(証明書の作成)
前回の記事に引き続きPUSH通知ネタです。
前回はクライアント側コードの記述方法について触れましたが、今回は証明書発行の手順をまとめます。
証明書関連は何かとややこしい部分が多いので、後で迷わないよう詳細に書きます。
前提条件
PUSH通知に使うアプリのProvisioning Fileは作成済という前提で手順をまとめます。Team Provisioning(.*)でないアプリ固有のProvisioning Fileをまだ作成してない方は、以下リンクを参考にご用意下さい。
iPhone Push通知のすすめ
また、PUSH通知の設定は開発環境と本番環境で異なる点が多いのですが、
今回は開発環境での準備を整えていきます。
本番環境だと通知がうまくいかない例 もありますので、その点はご注意下さい。
PUSH通知に使うAppleの証明書の準備
ブラウザ操作
iOS Dev Center のCertificate, Identifiers & Profiles を選択
Identifiers > App IDs と選び、PUSH通知を有効にするProvisioningを選ぶ
Push NotificationsのステータスがConfigurableであることを確認し、Settingsを押す
Development / Production の内、用途にあった方をCreate Certificateする
CSR Fileを作りましょう!的な画面が出るので、気にせずContinueする
Upload CSR File と書かれた画面が出る。ブラウザ操作はここで一度休憩となる
Mac操作
- キーチェーンアクセス > 認証アシスタント > 認証局に証明書を要求
メールアドレスはiOSデベロッパアカウントを、
要求の処理は「ディスクに保存」を指定します。
後は手順通りに進めていけば鍵ファイルを保存できます。
(CertificateSigningRequest.certSigningRequest
という名前で保存される)
ブラウザ操作
手順6の画面でいま作った鍵ファイルを読み込み、generateする
鍵がDownloadできるようになっているので、適当な場所にダウンロードする
aps_development.cer
という名前で保存されているはずです。
Mac操作
ダウンロードした鍵ファイルをダブルクリックし、キーチェーンに登録 キーチェンでの表示名は
Apple Development IOS Push Service
のはずです。p12ファイルの書き出しを行う キーチェーンアクセス > 「自分の証明書」を選択します。
Apple Development IOS Push Service
を右クリック > 書き出し を選択します。
ファイル名は任意ですが、ここではserver_certificates_bundle_sandbox.p12
と設定します。
パスワードが要求されるので、任意のパスワードを設定しましょう。ファイル形式をp12からpemに変換する ターミナルで以下のコマンドを入力します。
パスワードを聞かれた場合は上記の手順で設定したパスワードを入力しましょう。
$ openssl pkcs12 -in server_certificates_bundle_sandbox.p12 -out server_certificates_bundle_sandbox.pem -nodes -clcerts
ここまででAppleの証明書の準備をすることができました。
PUSH通知に使うサーバの証明書の準備
続いてサーバの証明書の用意を行います。
- Development / Productionの用途に応じ、以下からダウンロードする
用途 | ダウンロードリンク |
---|---|
Development | https://www.entrust.net/downloads/binary/entrust_2048_ca.cer |
Production | https://www.entrust.net/downloads/binary/entrust_ssl_ca.cer |
2.上記でDLしたファイルをダブルクリックしてキーチェーンに保存
3.左上でシステムルート、左下で証明書を選ぶ
4.Entrust Root Certification Authority
を探して右クリック > 書き出し
この時形式は.pem
形式で書きだします。
以上でサーバの証明書の準備も完了です。
おわりに
証明書が準備できたら次はサーバ側・クライアント側を実装することになるでしょう。
その際には以下のリンクが参考になるかと思います。
クライアント側(Objective-C)
- PUSH通知機能を持ったiPhoneアプリを作る(デバイストークンの登録とメッセージの受信) - Think Big Act Local
- Push Notification おさらい - Over&Out その後