将推送通知证书导出为 P12

Export push notification certificate as P12

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

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

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

您没有私钥。

所以解决方案是您必须撤销以前的证书并重新创建一个新的 APNS 配置文件。

我找到的解决方案已发布在这里:

我复制并粘贴答案:原来你所要做的就是在左侧面板上 select "My Certificates" 并启用 .p12 选项。

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

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

上导入钥匙串的情况

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

您可以像下面一样从证书中导出。