如何在Firebase控制台中使用苹果的新.p8证书进行APNs推送

114
最近苹果开发者账户升级后,我遇到了一个问题:在尝试创建推送通知证书时,它给我提供的是(.p8)证书,而非可以导出为(.p12)的APNs证书。
Firebase控制台只接受(.p12)证书,那么我该如何从这些新的(.p8)证书中获取(.p12)证书。

2
你在哪里获得 .p8 证书?我仍然可以从我的 KeyChain 创建 .p12。 - Ragul
我在两天前更新了我的苹果账户许可证,但它给我提供了.p8证书,而不是直接要求CSR文件的p12证书。 - Subso
你能得到解决方案吗? - Dhaval Bhadania
@DhavalBhadania 我在下面发布了我的答案。 - Subso
8个回答

72

我能够通过从左栏中的"Keys"标题下选择"全部"来完成这个操作

输入图像描述

然后,我点击右上角的加号按钮添加一个新密钥

输入图像描述

为您的密钥输入名称并选中"APNs"

输入图像描述

然后向下滚动并选择继续。 然后,您将被带到一个屏幕,让您选择立即或稍后下载.p8文件。 在我的情况下,我收到了一条警告,只能下载一次,所以请保管好该文件。


6
谢谢,开发者账户已经更新。在“证书”中不再有“APNs认证密钥”。 - Djiggy
谢谢,你救了我! - sioesi
@John,你能帮我一下吗?我已经卡了几天了。我无法让fcm工作... https://stackoverflow.com/questions/50292269 - bibscy
密钥可能不会过期,但是“配置文件”会过期。如果我们要发送推送通知,它们是否仍然需要,还是可以安全地将它们删除?谢谢。 - andreszs
6
@John Idasetima,我有点困惑,你的回答并没有解决问题——Firebase只接受p12格式的密钥,但新密钥是p8格式的。你的回答只是告诉我们如何将密钥“下载为p8格式”。那么你是在说Firebase既接受p8格式的密钥,也接受p12格式的密钥吗? - Gruntcakes

32

苹果最近对APNs进行了新的更改,现在苹果坚持我们使用“基于令牌的身份验证”而不是我们用于推送通知的传统方式。

因此,不需要担心它们的到期问题,并且这些p8证书既适用于开发又适用于生产,因此不必为每种模式生成2个单独的证书。

要生成p8,只需进入您的开发者帐户并选择此选项 “Apple Push Notification Authentication Key(Sandbox & Production)”

enter image description here

然后将直接生成p8文件。

我希望这将解决您的问题。

阅读苹果关于这些新APNs更改的内容: https://developer.apple.com/videos/play/wwdc2016/724/

您还可以阅读以下信息: https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html


2
我们能将 .p8 转换成 .PEM 类型吗? - Dimple Shah
2
我认为Firebase目前还不支持使用APNs Auth Keys(.p8)进行推送。但同时,现在从您自己的服务器上进行推送更容易。 - Andre Cytryn
2
谢谢 - 我没有使用Firebase,但我发现这个答案对于从.pem转换为.p8文件非常有帮助。我还发现苹果的这篇逐步指南非常宝贵;在遵循你的答案后,这是我接下来要走的下一步:https://eladnava.com/send-push-notifications-to-ios-devices-using-xcode-8-and-swift-3/ - kris
5
为什么没有“Apple Push Notification身份验证密钥(沙盒和生产环境)”这个选项? - Balasubramanian
这个流程生成的是 .cer 文件而不是 .p8 文件。.cer 文件需要进行转换吗? - N S
显示剩余7条评论

29

2021年5月 - 生成 .p8 文件而非 .cer 文件

我的问题是我找不到创建 .p8 文件的方法,所有方法都给了我 .cer 文件。

  1. 前往你的苹果开发者账户
  2. 进入密钥部分并点击加号按钮(或点击此处):

⚠️ 非常重要的一点是选择 keys 部分而不是 certificate 或者 identifiers。否则最后你将得到 .cer 文件 ‍♂️

Keys section

  1. 选择 Apple 推送通知服务: Options

⚠️ 请注意,由于它是非常强大的证书,数量非常有限,你不能拥有过多。因此,如果你已经创建了一个,你会看到类似于这张图片的东西,你应该使用那个文件或者吊销旧的。

  1. 下载.p8文件并将其安全保存。

1
这就是答案,经过两个小时的尝试将 .cer 转换为 .pem 或 .p12 和 .p8,结果非常简单。谢谢! - matsbauer

21

所以,花了一段时间后,我发现旧的推送证书生成服务仍然存在。

你有两个选择:

  • Apple推送通知身份验证密钥(沙箱和生产环境)
  • Apple推送通知服务SSL(沙箱和生产环境)

想要获得旧式.p12证书的人可以从第二个选项获取。 我还没用过第一个选项,因为大多数第三方推送通知服务提供商仍需要.p12格式的证书。

推送通知服务示例图像


2
此选项“Apple Push Notification Authentication Key (Sandbox & Production)”不可用。为什么? - Balasubramanian
3
在Developer.apple.com上我也找不到这个选项,有没有其他方法可以创建这个p8文件?或者将p12转换为P8? - Parth Mehta
@ParthMehta 你解决了这个问题吗? - Balasubramanian
2
同样的问题。我没有看到苹果推送通知认证密钥选项。 - ckim16
1
同样,对我来说,“身份验证密钥”选项不可用 :( - Axel Guilmin
除非您首先在项目设置中设置团队ID,否则它会抱怨。由于某种原因,谷歌希望为您读取TeamId。 - Nick Turner

19

Firebase控制台现在接受.p8文件,事实上,它建议上传.p8文件。

您可以在下面的截图中查看


3
如果我理解正确的话,App ID前缀 实际上就是在会员信息页面找到的团队ID,对吗?因为工具提示明确说明它位于会员信息页面,而且还链接到了该页面。 - andreszs
2
那里提到的“Key ID”是什么?请把我当成一个新手。 - Umair Ahmed
2
@UmairAhmed 当您请求注册推送通知时收到的设备令牌字符串。 - Huy-Anh Hoang
2
不是设备令牌。它是.p8文件名称下划线后面的字符串,例如AuthKey_A5HG8NYIFC.p8。在Apple开发者网站的证书、标识符和配置文件部分的密钥菜单中创建密钥后,您也可以看到它。 - Somoy Das Gupta

9
请按以下步骤操作: 1. 生成APNs身份验证密钥
在您的开发者中心中打开APNs身份验证密钥页面,然后点击+按钮创建一个新的APNs身份验证密钥enter image description here 在下一页中,选择“Apple Push Notification Authentication Key(沙箱和生产)”,然后点击页面底部的“继续”按钮。 enter image description here 随后,苹果将生成一个包含您的APNs身份验证密钥的.p8密钥文件。 enter image description here 下载.p8密钥文件到您的计算机,并保存供以后使用。同时,请务必在某处记录下密钥ID,因为连接到APNs时需要用到它。 2. 发送推送通知 参考链接:APNS(配置推送通知)

重要提示:请在安全的地方备份您的密钥。该密钥不会再次显示,而且无法在以后找回。


4
APN的授权密钥在我的开发者门户中不存在。有人知道为什么吗? - ckim16
@ckim16 - 它可以生成一次,之后就不会再出现(删除了APNS授权密钥选项)。这是您查询的参考(help.apple.com/xcode/mac/current/#/…)。如果您以前已经生成过它,那么它将不会再对您可见。 - Krunal
我想知道你的链接是否只对那些付费拥有苹果开发者账户的人有效。对于我来说,它会重定向到https://developer.apple.com/account/#/welcome。 - Ryan
它没有为我下载p8文件 :-| - Oliver Dixon
嘿@Krunal,感谢您的回答。我已经尝试让它工作了,但即使我得到了有关FCM的文档,当我上传p8文件(APNS密钥)时它仍然无法工作。我不得不像以前一样同时上传p12文件。我找不到问题所在。 - eemrah
显示剩余2条评论

6
你可以在https://developer.apple.com/account/中创建.p8文件。
然后进入“证书、标识符和配置文件”>“密钥”>“添加”。

apple_key

选择苹果推送通知服务(APNs),输入一个密钥名称(随便取)。

然后点击"继续",在"注册"之后您就可以获得它并下载它了。


4

2
谢谢,我正好在找那个。在 FCM 控制台中,标签明显是错误的,即使一年后也没有人注意到这个错误。 - andreszs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接