[iOS] 推播驗證區分 p12 憑證與 p8 金鑰
最近需要整合中國可比較順利收到遠端推播的平台極光,我們決定使用最新的 Apple 推播通知(APNs)認證機制。
先前已有在文章:Apple 推播通知服務憑證更新研究過,了解舊的 p12 憑證與新的 p8 金鑰之差異,有更好的方法就與時俱進吧!
.
1. .p12 憑證
- 舊機制:以前要使用 APNs,必須在 Apple Developer 產生「推播憑證(Push Certificate)」,然後把它匯出成
.p12檔案(包含憑證與私鑰)。 - 綁定性高:這個
.p12是針對「單一 App」產生的,每個 App 要推播就得有自己的憑證。 - 管理麻煩:如果有很多 App,要管理很多
.p12,到期還得逐一更新。
2. .p8 金鑰
- 新機制 (2016 後):Apple 推出了「APNs Auth Key」機制,用
.p8私鑰檔案來取代傳統憑證。 - 好處:
- 一把
.p8金鑰可以同時支援多個 App,不需要為每個 App 建立不同檔案。 - 不會每年過期,只要不撤銷,金鑰就一直有效。
- 伺服器端使用 JWT(JSON Web Token)來跟 APNs 做身份驗證,安全性更好。
- 一把
- 限制:一個 Apple 開發者帳號最多能建立 2 組 APNs
.p8金鑰。
小結
.p12→ 舊式、以「App」為單位的憑證,會過期,需要管理多份。.p8→ 新式、以「帳號」為單位的金鑰,不會過期,維護更簡單。











HappyMan・迴響