200

我在我的应用程序中使用 Urban airship 进行推送通知。所以,我需要从 Apple 开发者门户下载推送 SSL 证书。下载后,我在钥匙串访问中添加了它。但是没有为证书创建私钥。当我尝试右键单击并导出证书时,我无法将其导出为.p12文件,因为.p12文件扩展名在保存时被禁用。由于声誉较低,我无法在此处附上屏幕截图。

有人请告诉我这里的问题在哪里。我该怎么做?

4

11 回答 11

653

事实证明,您所要做的就是在左侧面板上选择“我的证书”并启用 .p12 选项。

在此处输入图像描述

于 2013-10-21T19:22:04.173 回答
116

就我而言,我将 .cer 文件设置为“系统”选项,而不是“登录”选项。然后我将 .cer 文件从“系统”移动到“登录”选项,然后按“我的证书”然后导出它。p12 就可以了..

于 2014-01-11T09:21:33.590 回答
29

Apple 不会存储您用于创建证书的私钥。您需要在您的机器上已经有它的副本。

听起来好像是其他人请求了您尝试下载的推送证书,或者您在另一台机器上请求了它。如果您找不到私钥,您将需要创建一个新的证书请求并通过开发人员门户上传。

于 2013-03-27T15:19:34.537 回答
19

为了导出为 p12,您要么需要从您的机器生成证书,要么拥有用于在您的机器上生成证书的密钥。

为确保这将起作用:

  1. 登录 Apple 开发中心

  2. 转到供应门户或证书、标识符和配置文件

  3. 转到证书并创建 Apple 推送通知服务 SSL 从这里开始,您将被引导完成证书生成过程。

  4. 下载生成的证书后,将其安装到您的钥匙串中(双击证书文件或拖放到钥匙串窗口中。

  5. 然后从左侧面板中选择“证书”。右键单击要导出的证书,将出现 p12 选项。

注意:除非您从机器生成证书,否则它不会存在

于 2016-02-17T22:56:44.370 回答
13

除了验证证书是从同一台计算机上的 Keychain Access -> Certificate Assistant 的证书请求中颁发的之外,还要确保将收到的 .cer 文件安装到正确的 keychain 中。

最好的方法是在左侧钥匙串下选择适当的钥匙串,最有可能是“登录”,确保在“类别”下选择“我的证书”,然后将 .cer 文件拖放到主文件列表区域。

于 2015-12-15T23:00:35.587 回答
11

就我而言,直到我按名称搜索证书才出现!我什至拍了一个视频作为证据。“登录”和“我的证书”都被选中,我经历了两次从头开始重新生成的完整流程,每次证书不存在让我导出 .p12 文件。一旦我在搜索栏中输入它的名称,它就会出现!:flip_table_emoji:

苹果,修复你的错误!我生命中永远不会回来的两个小时。

于 2020-12-14T10:05:17.480 回答
10

对我来说,我不必右键单击 Keychain Access 中的主证书行并选择Export,而是单击我尝试导出的证书旁边的下拉箭头,然后右键单击其下方的条目,然后选择Export. 那么你实际上是在选择私钥部分而不是公钥部分。

于 2015-12-26T16:07:25.837 回答
4

让您选择私钥而不是公钥,因为您可能在列表中同时拥有这两种类型。

于 2013-12-19T23:12:08.997 回答
0

您可以使用Onesignal 供应商工具来创建推送 SSL 证书。它是免费的,可以为您解决所有令人困惑的问题。

它会在您生成它时撤销您当前的,因此如果您在现场,将其上传到相关位置时一定要快速。

这对我适用于 OneSignal 推送通知,但我看不出它为什么不适用于其他推送通知。

于 2020-06-22T11:20:27.493 回答
0

尝试了上面的很多建议,这是对我有用的解决方案(@Greg):

您在生成证书签名请求时在 Keychain Access左侧选择的钥匙串必须与您将签名证书导入回的钥匙串相同。否则,它会将其视为其他人的,并且钥匙串访问不会在下拉菜单中显示私钥。

于 2020-08-04T22:39:31.333 回答
0

您需要在 Access Key Chain 中选择“证书”选项卡。

在此处输入图像描述

于 2021-09-23T06:41:34.463 回答