将推送通知证书导出为 P12

Posted

技术标签:

【中文标题】将推送通知证书导出为 P12【英文标题】:Export push notification certificate as P12 【发布时间】:2016-04-12 15:19:15 【问题描述】:

通常,我可以将我从苹果会员中心下载的钥匙串中的证书导出为 p12 文件。不过,苹果好像改变了什么?!

我需要它作为 p12 将其导入亚马逊的 SNS 服务。我已尝试转换为 PEM 文件,但它在控制台上产生错误。

【问题讨论】:

从屏幕截图的背景来看,证书左侧没有灰色箭头。我怀疑你在“这台计算机”中有这个证书的“私钥”。如果您在此处没有私钥,则 .p12 选项将灰显。 【参考方案1】:

您无法导出到 .p12,因为您的计算机上没有安装私钥(如果安装了,您的证书旁边会有一个“扩展”箭头,就像您的 iPhone 分发证书一样。)在导出之前,您需要从生成证书的机器上获取私钥。

【讨论】:

如果您在本地有“证书签名请求”,则单击左侧面板中的“我的证书”,然后您可以使用“.p12”选项导出。感谢@chelder 的这一部分【参考方案2】:

我找到的解决方案已发布在这里:https://***.com/a/19502944/1198404

我复制并粘贴答案:原来你所要做的就是选择左侧面板上的“我的证书”,它会启用 .p12 选项。

【讨论】:

【参考方案3】:

您没有私钥。

因此解决方案是您必须撤销之前的证书并再次创建新的 APNS 配置文件。

【讨论】:

但这对我也不起作用。可能是因为我以前的 MacBook 的 iCloud 中的钥匙串碎片? @NazarMedeiros 确实是这样......但正如我所说,你现在正在创建一个新的,所以它必须是你的 mac 私钥,它将被链接。 但是还是不行。即使我创建了所有新内容,我也看不到证书。 拜托,谁能帮忙?我真的很努力解决这个问题 @NazarMedeiros 你能详细说明你在做什么吗?【参考方案4】:

如果接受的答案不适用于您(例如,因为您从同一台 Mac 创建了 CSR,并且应该在这台 Mac 上拥有私钥),那么还有一种可能性:

如果您碰巧选择了错误的钥匙串(例如,如果您不小心单击了系统钥匙串而不是登录钥匙串),您可能会遇到同样的问题。如果证书签名请求来自该机器,它会将私钥与登录钥匙串相关联(至少,这似乎是默认设置)。因此,如果您以某种方式下载证书并将其导入另一个钥匙串,如系统钥匙串(或 iCloud 钥匙串,正如一些 cmets 所提到的),钥匙串访问将找不到匹配的私钥,也不会将证书放在“我的证书”下,因此它无法导出 p12。这将类似于导入到不同 Mac 上的钥匙串的情况。

确保导入到与私钥关联的钥匙串中。这通常是登录钥匙串。

【讨论】:

以上是关于将推送通知证书导出为 P12的主要内容,如果未能解决你的问题,请参考以下文章

我无法将 P12 证书上传到 Azure(iOS 推送通知)

推送通知 - 我们是不是需要在服务器上更新 p12 以获得新证书?

为推送通知创建.pem 文件?

Safari 推送通知不起作用

生成新证书后推送通知不起作用

ios推送通知之ios推送证书的申请和使用配置