【发布时间】:2013-03-17 17:48:51
【问题描述】:
我在我的应用程序中使用 Urban airship 进行推送通知。所以,我需要从 Apple 开发者门户下载推送 SSL 证书。下载后,我在钥匙串访问中添加了它。但是没有为证书创建私钥。当我尝试右键单击并导出证书时,我无法将其导出为 .p12 文件,因为保存时禁用了 .p12 文件扩展名。由于声誉较低,我无法在此处附上屏幕截图。
有人请告诉我这里的问题出在哪里。我该怎么做?
【问题讨论】:
标签: ios
我在我的应用程序中使用 Urban airship 进行推送通知。所以,我需要从 Apple 开发者门户下载推送 SSL 证书。下载后,我在钥匙串访问中添加了它。但是没有为证书创建私钥。当我尝试右键单击并导出证书时,我无法将其导出为 .p12 文件,因为保存时禁用了 .p12 文件扩展名。由于声誉较低,我无法在此处附上屏幕截图。
有人请告诉我这里的问题出在哪里。我该怎么做?
【问题讨论】:
标签: ios
就我而言,我将 .cer 文件设置为“系统”选项,而不是“登录”选项。然后我将 .cer 文件从“系统”移动到“登录”选项,然后按“我的证书”然后导出它。p12 就可以了..
【讨论】:
Apple 不会存储您用于创建证书的私钥。您需要在您的机器上已经有它的副本。
听起来好像是其他人请求了您尝试下载的推送证书,或者您在另一台机器上请求了它。如果您找不到私钥,则需要创建一个新的证书请求并通过开发者门户上传。
【讨论】:
要导出为 p12,您要么需要从您的机器生成证书,要么拥有用于在您的机器上生成证书的密钥。
为确保这将起作用:
登录 Apple 开发中心
转到供应门户或证书、标识符和配置文件
转到证书并创建 Apple 推送通知服务 SSL 从这里开始,您将被引导完成证书生成过程。
下载生成的证书后,将其安装到钥匙串中(双击证书文件或拖放到钥匙串窗口中。
然后从左侧面板中选择“证书”。右键单击您要导出的证书,将出现 p12 选项。
注意:除非您从您的机器生成证书,否则它不会存在
【讨论】:
除了验证证书是从同一台计算机上的 Keychain Access -> Certificate Assistant 的证书请求中颁发的之外,请确保将收到的 .cer 文件安装到正确的钥匙串中。
最好的方法是在左侧钥匙串下选择适当的钥匙串,最有可能是“登录”,确保在“类别”下选择“我的证书”,然后将 .cer 文件拖放到主文件列表区域。
【讨论】:
对我来说,我不必右键单击 Keychain Access 中的主证书行并选择 Export,而是单击我尝试导出的证书旁边的下拉箭头,然后右键单击在其下方输入,然后选择Export。那么你实际上是在选择私钥部分而不是公钥部分。
【讨论】:
就我而言,证书直到我按其名称搜索后才出现!我什至拍了一个视频作为证据。 “登录”和“我的证书”都被选中,我经历了两次从头开始重新生成的完整流程,每次证书不存在让我导出 .p12 文件。一旦我在搜索栏中输入它的名称,它就会出现! :flip_table_emoji:
Apple,修复你的错误!我生命中永远不会回来的两个小时。
【讨论】:
让您选择私钥而不是公钥,因为您可能在列表中同时拥有这两种类型。
【讨论】:
您可以使用Onesignal provisionator tool 创建推送 SSL 证书。它是免费的,可以为您解决所有令人困惑的问题。
它会在你生成它时撤销你当前的,所以如果你在现场,把它上传到相关的地方很重要。
这对我适用于 OneSignal 推送通知,但我看不出为什么它不适用于其他推送通知。
【讨论】:
尝试了上面的很多建议,这是对我有用的解决方案 (@Greg):
生成证书签名请求时在 Keychain Access 中选择的钥匙串在左侧必须与将签名证书导入回的钥匙串相同。 否则,它会将其视为其他人的,并且钥匙串访问不会在下拉列表中显示私钥。
【讨论】: