LoginSignup
22

More than 3 years have passed since last update.

iOS プッシュ通知の実装に必要な「p12形式の証明書」と「 p8形式の鍵」について

Last updated at Posted at 2020-12-15

はじめに

私はプッシュ通知のためのMBaaS(mobile backend as a Service)はFirebaseしか使った事がありません。。
なので、基本的にこの記事で書く内容は、Firebase Cloud Messagingを使う事を前提としています!

あらかじめご了承を:grinning:

iOSでプッシュ通知を使うために必要なファイルは2種類ある

iOSアプリのPush通知を実現するには、APNs(Apple Push Notification Service)と連携する必要があります。

で、APNsを利用する際には、認証のために証明書やトークンが必要です。

スクリーンショット 2020-12-15 12.56.26.png
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server

APNsを利用する際に必要な認証方法が実は2種類あるため、初めて調べた人は非常に混乱するのではないだろか??:sweat:

2種類の認証方法というのがタイトルにもある「p12形式の証明書」と「p8形式の鍵」の事です。

「p12形式の証明書」と「p8形式の鍵」の違い

それぞれの特徴をまとめてみました!

p12

・ファイル取得までの道のりが長くて複雑
・有効期限は1年で、毎年更新する必要がある
・App ID単位で管理ができる
・開発環境・本番環境と区別ができる
・古いやり方
・何度でもダウンロードできる

p8

・ファイル取得までの道のりが短くて簡単
・有効期限は無期限
・App ID単位で管理ができない(Apple IDが保有している全てのアプリで使える)
・開発環境・本番環境と区別がない
・新しいやり方(Firebaseではp8が推奨されている)
同じkeyは1度しかダウンロードできない
Apple IDのApple Developer Programに対して、2つまでしか認証キーが発行できない

補足

p8 keyは「1度しかダウンロードできない」となっていますが、これは「1度失ったら2度とプッシュ通知を使えない」というわけではありません。

Remember to keep the key file safely as you can only download it once, if you lost the key file, you will need to revoke and it and register a new one.
https://fluffy.es/p8-push-notification/

ダウンロードできるのは1回だけなので、キーファイルを安全に保管することを忘れないでください。キーファイルを紛失した場合は、キーファイルを取り消して新しいファイルを登録する必要があります。

同じkeyをダウンロードできるのが1回だけ、という意味で、もし無くしたら現在有効になっているp8 keyを取り消して(Revoke)、再び新しいものを作成してダウンロードすればOKという事です!
スクリーンショット 2020-12-15 14.07.08.png
https://firebase.google.com/docs/cloud-messaging/ios/certs

「p12形式の証明書」の取得方法

プッシュ通知に必要な証明書の作り方2020

「p8形式の鍵」の取得方法

使われてる画像は古いですが、参考になるかと
お手軽firebaseプッシュ通知証明書作成メモ

英語でもいいならこちらが新しい
.p8 Key File For Push Notification

最後に

「どっちが良いか?」を一概に決めることはできず、どちらも一長一短という感じ。。。

ただ、p8が新しいやり方なので、時代が進むとそっちが主流になりそうではある。

もしp8 keyを紛失したら?については下記を参考に:point_down:
iOS - What happens I lost my APNs Key file?
軽く要約しますと
Apple Developer Member Centerで新しいp8 keyを作成(もし既に2つ認証keyを作成していた場合、無くした方をRevokeする)
②Firebaseなどのサーバー側で無くしたp8 keyを削除して、新しいp8 keyを登録

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22