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