【问题标题】:Unable to export Apple production push SSL certificate in .p12 format无法以 .p12 格式导出 Apple 生产推送 SSL 证书
【发布时间】:2013-03-17 17:48:51
【问题描述】:

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

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

【问题讨论】:

    标签: ios


    【解决方案1】:

    事实证明,您只需在左侧面板上选择“我的证书”,它就会启用 .p12 选项。

    【讨论】:

    • 看来,由于没有可用的私钥,因此证书未列在“我的证书”下。它仅在“证书”下。
    • 有时您需要重新启动钥匙串应用程序才能显示您的证书。
    • 另一件事:你必须从同一台机器生成 if 。实际上,您必须从同一个 KEYCHAIN 生成证书签名请求!
    • 如果这不是错误,那是我听说过的最奇怪的功能......
    • “我的证书”中没有任何证书。即使我在同一台 Macbook 上从一开始就完全请求证书。有谁知道为什么我在“我的证书”中看不到证书?
    【解决方案2】:

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

    【讨论】:

    • WTF!绝对疯狂,但也为我工作。它还使下拉箭头和私钥出现。非常感谢!
    • 真的很担心2小时后发生的事情!!。你救了我。非常感谢。
    • 我做了同样的事情并且能够导出 .p12。谢谢。我正在考虑撤销它并从其他机器上执行它,但它有效。
    • 它对我不起作用。我仍然无法在“我的证书”部分看到任何证书。我创建了一个全新的证书签名请求文件。将其上传到苹果开发者门户以下载 APNS 证书。我双击了那个,但它只出现在“证书”部分。有什么想法吗?
    【解决方案3】:

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

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

    【讨论】:

    • 但有一件事......如果我得到了私钥,我如何将它与现有的推送证书集成。?
    • 你应该让有私钥的人导出并发送给你。然后,您可以将其添加到您的钥匙串中,通过您的推送证书,您可以创建 p12 文件。
    • 当我从头开始在同一台macbook上完成请求时,证书仍然没有出现在“我的证书”中。
    【解决方案4】:

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

    为确保这将起作用:

    1. 登录 Apple 开发中心

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

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

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

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

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

    【讨论】:

    • 这里的关键是你从你的机器生成它。实际上,您必须从同一个 KEYCHAIN 生成证书签名请求!
    • 并且证书助手始终使用在创建 CSR 时设置为默认值的任何钥匙串。如果您希望在特定钥匙串中生成钥匙,请在开始 CSR 流程之前将其设置为默认值。创建 CSR 后,您可以将其重新设置。导入从 Apple 下载的证书时,将其导入具有密钥对的钥匙串中。
    【解决方案5】:

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

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

    【讨论】:

    • 感谢@Gavin 提到“选择合适的钥匙串”我只是双击 cer 文件,它总是在系统钥匙串中。
    • 它对我不起作用。我仍然无法在“我的证书”部分看到任何证书。我创建了一个全新的证书签名请求文件。将其上传到苹果开发者门户以下载 APNS 证书。我双击了那个,但它只出现在“证书”部分。有什么想法吗?
    【解决方案6】:

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

    【讨论】:

    • 为了使箭头可见,我需要将“类别”设置为“证书”而不是“所有项目”
    • 完全正确。右键单击证书本身不会在上下文菜单中产生“导出”选项
    【解决方案7】:

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

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

    【讨论】:

    • 这很好用。需要通过搜索栏查找证书
    • 完美,谢谢!
    【解决方案8】:

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

    【讨论】:

      【解决方案9】:

      您可以使用Onesignal provisionator tool 创建推送 SSL 证书。它是免费的,可以为您解决所有令人困惑的问题。

      它会在你生成它时撤销你当前的,所以如果你在现场,把它上传到相关的地方很重要。

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

      【讨论】:

      • 不幸的是,两因素身份验证目前不起作用
      【解决方案10】:

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

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

      【讨论】:

        【解决方案11】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-05
          • 1970-01-01
          • 1970-01-01
          • 2016-06-08
          • 1970-01-01
          • 1970-01-01
          • 2013-04-04
          • 2015-04-17
          相关资源
          最近更新 更多