今さらブログに書くまでもないかもしれませんが、少し前にAPNsの証明書をアップデートする方法について調べた手順です。
誰かの参考になれば幸いです。
ただし、あくまで検証した時のメモですので、各自の責任でご利用ください。
(現に、これを調べてからここに公開するまでの間に若干動きが変わっていますので…)
前提
- Mac OS X 10.8 (Mountain Lion)で作業する。
- Member Centerでの作業手順は2013/7時点の仕様に基づく。
手順
CSR作成
-
Macのキーチェーンアクセスを開く。
-
左側のツリー[キーチェーン]で[ログイン]を選択し、[分類]で[自分の証明書]を選択する。
-
右側の一覧上で何も選択されていないことを確認し、メニューの[キーチェーンアクセス] > [証明書アシスタント] > [認証局に証明書を要求…]を選択する。
-
[ユーザのメールアドレス]、[通称]に適切な値を入力し、[CAのメールアドレス]は空欄のまま、[要求の処理]は[ディスクに保存]を選択、[鍵ペア情報を指定]にチェックを入れる。
[ユーザのメールアドレス]はアプリをリリースするアカウントのメールアドレスでなくても良いと思われるが、前回の証明書作成時のメールアドレスにしておくのが良いかもしれない。
[通称]も同様に入力内容に要件はないと思われるが、前回の証明書作成時の通称にしておくのが良さそう。
入力後、[続ける]を選択する。
-
[名前]に適当な値を入力(CertificateSigningRequest.certSigningRequestのままで良い)し、[保存]をクリックする。
-
[鍵のサイズ]に[2048ビット]、[アルゴリズム]に[RSA]を指定して[続ける]をクリックする。
-
[完了]をクリックする。
-
出力された*.certSigningRequestファイルが、後述の手順でアップロードするCSRファイル。
念のため保管しておいた方が良い。
なお、CSRの内容を確認するには以下のコマンドを実行する。
前回の証明書作成時の記録がなくCSRだけが残っている場合などに実行する。
openssl req -in /path/to/CertificateSigningRequest.certSigningRequest -text
出力の「Subject:」を確認すると、入力したメールアドレスが確認できる。
証明書作成
- MemberCenter にアプリ管理者のアカウントでログインする。
- [Certificates]のリンクをクリックする。
なお、証明書の更新を想定しているため対象アプリの[App ID]ではPush Notificationが既に有効になっているものとする。
- 画面右上の[+]ボタンをクリックする。
- [Worldwide Developer Relations Certificate Authority]の証明書(AppleWWDRCA.cer)がキーチェーンアクセスに登録されていない場合は、リンクをクリックしてダウンロードし、ファイルをダブルクリックしてキーチェーンアクセスに登録しておく。
- [Apple Push Notification service SSL (Production)]を選択して[Continue]をクリックする。
- 対象アプリの[App ID]を選択して[Continue]をクリックする。
同じApp IDの証明書は2つまでしか作れないことに注意する。
→と思ったが、2013年7月のAppleサービスが停止した時以来、3つ以上作れるようになっている様子。
- CSRについての説明を確認して[Continue]をクリックする。
- [Choose File…]で作成済みのCSRファイル(*.certSigningRequest)を選択し、[Generate]をクリックする。
- [Download]をクリックしてcerファイルをダウンロードする。
- ダウンロードしたcerファイルをダブルクリックする。
キーチェーンアクセスが開き、左側ツリーの[キーチェーン]で[ログイン]、[分類]で[自分の証明書]を選択したときの画面右側の一覧に新しい証明書が追加されたことを確認する。
項目名は「Apple Production IOS Push Services: <対象のApp ID>」という形式で登録される。
- 上記の追加された項目の左側に右向きの三角印がついているのを確認する(CSRを作成する時に生成される鍵ペアと紐づいていることの確認)。
- 同項目の右クリックメニューで「"Apple Production IOS Push Services: <対象のApp ID>"を書き出す…」を選択する。
- [フォーマット]に[個人情報交換(.p12)]が選択されていることを確認し、[名前]に適切な値を入力して[保存]をクリックする。
名前は既存の証明書と同じ名前(Push通知リクエストを実行するプログラムで指定するファイル名)を指定する。
また、保存時にパスワードを2種類入力する必要があるが、1つ目のパスワード([書き出した項目を保護するために使用するパスワードを入力]と表示される)は、Push通知リクエストを実行するプログラムで使用する値。
2つ目のパスワードはキーチェーンアクセスにアクセスするためのパスワードのため、ログインユーザのパスワードを入力する。