合同会社バックアップ
Blog

ブログ

期限切れの前に!iOSのプッシュ通知用証明書(APNs)の更新方法

Tech
2018.11.17
Contents
目次を非表示

    アプリを運用していて、お客様や契約企業からのクレームで怖いものの一つが「プッシュ通知が届かない」という不具合報告。

    iOS や端末システムのアップデートなど外的要因が原因となることもありますが、トラブルを防ぐためにも毎年確認しておきたい作業が「プッシュ通知用証明書の更新作業」です。

    そこで今回は、毎年訪れる割には「どうやるんだっけ…」と忘れがちな開発証明書の更新の流れと手順をまとめました。

    ※ 初回の作成に関してはこちらの記事が参考になります
    https://qiita.com/natsumo/items/d5cc1d0be427ca3af1cb

    APNs 更新作業の流れ

    • 証明書 (cer) を作り直す

    また、証明書 (cer) を作成する際にはまず、ローカルマシンの中で個人を特定するためのリクエストファイル (CSR) をつくる必要があります。

    CSR 作成後に cer ファイルを作成して取り込むことで、各自の Mac のキーチェーンアクセス上で証明書と秘密鍵が紐付きます。

    なお、iOS アプリでプッシュ通知を使うために必要な開発証明書は「Apple Push Notification service SSL (APNs)」です。 プッシュ通知を実装したアプリの場合は、APNs の有効期限が切れる前に新しい証明書を発行するという作業が必要になります。

    • p12 ファイルを更新する

    Certificate を作成後、サーバーにアップロードするという作業です。BackApp では p12 ファイルを使用しているので、例としてこちらも解説しておきます。

    p12 は証明書を他の端末でも有効にするためのファイルで、組織として iOS アプリ開発を行なっている場合 (複数の端末からビルドする場合など) によく使われます。

    --

    ちなみに、iOS の証明書の有効期限は証明書の一覧画面で確認できます。作成から 1 年後の日付になっています。

    https://developer.apple.com/account/ios/certificate/

    同じく一年契約で自動更新ができない「Apple DeveloperProgram」と同様、登録時に更新のスケジュールをカレンダーに登録しておくことをおすすめします。

    手順1. 証明書の要求ファイル (CSR) を作成する

    まず、Mac でキーチェーンアクセスを起動し、メニューから

    「キーチェーンアクセス」→「証明書アシスタント」→「認証局に証明書を要求...」

    を実行します。

    証明書アシスタントが起動したら

    • ユーザーメールアドレス:開発者 (管理者) のもの
    • 略称:空欄でなければ何でもいい
    • CA のメールアドレス:空欄のままでも可
    • 要求の処理:「ディスクに保存」「鍵ペア情報を指定」にチェック

    を入力します。

    すると、証明書の要求ファイル (CertificateSigningRequest.certSigningRequest / 通称 CSR ファイル) を PC 内に保存する画面が出てくるので、任意の場所に保存してください。

    ※鍵ペア情報はデフォルト (2084ビット / アルゴリズム : RSA) のままで構いません。

    手順2. Apple DeveloperProgram で証明書 (Certificate) を作成する

    Apple DeveloperProgram のサイトの「Account」から、自社のアカウントにログインします。

    「iOS App IDs」にアクセスすると現在利用している Bundle ID の一覧が表示されるので、現在利用している ID を選んで「Edit」ボタンを押してください。

    以下のような画面が表示されるので「Production SSL Certificate」の「Create Certificate」ボタンを押下します。

    続く「About Creating a Certificate Signing Request (CSR)」という画面で「Continue」をクリックすると、要求ファイル、つまり CSR ファイルが求められます。手順 1 で作成した CSR ファイルを選び、アップロードしてください。

    成功すると「Your certificate is ready」という画面に切り替わり、「Download」ボタンを押すことで新しい証明書 (cer) がダウンロードできます。

    App ID の画面から証明書の一覧を見ると、Expires (期限) が 1 年後になった新しい証明書が登録されていることが確認できるはずです。

    そしてダウンロードした新しい cer ファイルをキーチェーンアクセスに取り込み、プッシュ通知用のサーバーに登録すれば開発証明書の更新作業は完了です。

    手順3. p12ファイルを作成・アップロードする

    Firebase などの外部サービスでプッシュ通知を実装している場合は p12 ファイルが必要になります。

    まず、キーチェーンアクセスに取り込まれた cer ファイルを右クリックして、「Apple Push Services:BundleIDを書き出す」をクリックします。

    すると保存するためのダイアログが表示されるので、名前をつけて p12 ファイルを保存します。書き出したファイルをプッシュ通知配信用のサーバーに配置すれば更新作業は完了です。

    p12 ファイルにはパスワードを設定することもできますが、パスワードがあるとプッシュ通知が機能しないという事例があります。ハマってしまった際は一度パスワードなしで書き出してみてください。

    一緒に働くメンバーを募集しています
    img

    Backapp では受託/自社プロダクトともにアプリ開発を手掛けるディレクター、PM、デザイナーを募集しています。

    • 「折衝・調整や進行管理能力を生かして新たな分野の仕事にチャレンジしたい」
    • 「アプリ開発のスペシャリストとしてもっと幅広い・大きな案件をこなして成長したい」

    といった方はぜひ一度カジュアル面談でお話しましょう!