122

我们有一个 iOS 应用,其推送通知证书已过期,我们正在尝试创建一个新应用。我在供应门户(ios_developer.cer、ios_distribution.cer)中创建了新证书并下载了它们。我按照Stack Overflow上的说明将其转换为 PEM,然后转换为 P12 文件,但我被卡住了。然后,当我尝试将 PEM 转换为 P12 时,它需要某种私钥,而我不知道从哪里得到它。

我也尝试将这些加载到钥匙串访问中。我读过你可以从那里将它们导出为 P12,但是当我进行导入时,它们不会出现在任何地方。

4

9 回答 9

140

您在 Keychain Access 中创建签名请求时会生成您的私钥。生成并下载证书后,双击它会将其添加到 Keychain Access 中,它将与私钥匹配。然后,您可以选择证书,并打开箭头以选择私钥并将它们一起导出为 .p12 文件从 Keychain Access。

于 2012-02-23T18:11:45.027 回答
93
于 2015-03-10T11:46:51.387 回答
38

除非您通过从钥匙链左下角选择(证书)进行过滤,否则您将不会获得扩展选项

于 2013-02-25T20:48:35.207 回答
36

好的,问题解决了!似乎当我双击证书时,它会自动将其安装在系统钥匙串中 - 我不知道为什么。所以相反,我只需将证书拖放到 LOGIN 钥匙串中,然后一切都很好。感谢这篇文章 ->向钥匙串添加证书并生成 .p12 文件格式- alon Rosenfeld 10 个月前

于 2013-12-04T00:45:17.483 回答
8

要让你的 p12 文件走这条路..

步骤 1.XCode > 转到项目设置>常规>签名部分 >签名证书

查看您为此特定应用程序使用的证书,如下图所示

在此处输入图像描述

步骤 2.打开钥匙串> 在左下角类别部分 >证书

查找证书并通过单击向下箭头打开子项,如图所示

在此处输入图像描述

第 3 步。右键单击并通过提供您的密码导出为“Certificates.p12”,例如。“123456”

于 2019-07-18T05:22:32.750 回答
5

对于其他任何拥有灰色/灰色 P12 选项的人:

确保您位于钥匙串访问中的“我的证书”或“证书”类别中。

https://sailthru.zendesk.com/hc/en-us/articles/115000032546-Can-t-export-my-certificate-in-p12-format

于 2018-02-21T08:13:29.420 回答
3

对于仍然遇到此问题的任何人,我的解决方案是不要同时选择“导出 2 项”(密钥和证书) - 而只是导出已经包含密钥的证书。截至 2016 年,我认为这是这样做的方法,因为以前与 export 2 项目一起使用的上传不再起作用。

于 2016-05-28T14:36:49.990 回答
2

我最终来到这里,因为我试图在没有 Mac的情况下使用MS Visual Studio App Center在云中构建一个 iOS 应用程序。问题是每个教程都使用 Jayprakash Dubey 上面评价最高的答案。这种方法使用 Mac 和 KeyChain。解决方案来自 SO here

您需要一个密钥 (aps_development.key),然后:

  1. 创建密钥对:openssl genrsa -out aps_development.key 2048
  2. 创建 CSR:openssl req -new -sha256 -key aps_development.key -out aps_development.csr
  3. 将 CSR 上传到开发者门户以获取证书 aps_development.cer
  4. 转换证书:openssl x509 -inform DER -outform PEM -in aps_development.cer -out aps_development.pem
  5. 构建 PKCS#12:openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12

然后,您可以继续制作应用程序 ID 和配置文件。这将允许您在 App Center 中构建。

于 2020-11-10T15:07:41.287 回答
1

对于其他任何拥有灰色/灰色 P12 选项的人,

这是我的 macbook pro 的最新截图(2021 年)。

钥匙串访问 v11.0

于 2021-10-12T16:23:46.963 回答