如何为iOS发行版创建P12证书


102

我们有一个iOS应用程序,其推送通知证书已过期,我们正在尝试创建一个新的应用程序。我已经在Provisioning门户(ios_developer.cer,ios_distribution.cer)中创建了新证书并下载了它们。我在这里按照Stack Overflow上的说明将其转换为PEM,然后转换为P12文件,但是我遇到了麻烦。然后,当我尝试将PEM转换为P12时,它想要某种私钥,而我不知道从何处获得它。

我也曾尝试将它们加载到Keychain Access中。我读过您可以从那里将它们导出为P12,但是当我执行“导入”时,它们不会出现在任何地方。

Answers:


127

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


12
没关系; 弄清楚了。难怪人们对此有如此麻烦……令人困惑!
RobG 2012年

14
会很好,但是p12对我来说是灰色的:(
罗伯

14
@Rob,您需要选择私钥而不是整个证书。在左上角的钥匙串中,选择“登录”,然后在“类别”下面,选择“证书”,您将看到证书现在具有下拉箭头,单击它,私钥将显示右键单击并将帽子导出为.p12
tutts

6
我也没有下拉选项。下载后,我双击了证书,该证书显示在登录钥匙串中,而不显示在私钥下。我只在“证书”下看到它,我看到的密钥和证书之间没有任何联系。
setherj 2014年

6
同样在这里。没有下拉菜单,p12变灰
火车青训2015年

75

.p12文件用于在Apple App Store上发布应用

A.创建一个(.certSigningRequest)CSR文件

  1. 从实用程序打开钥匙串访问
  2. 从“钥匙串访问”工具栏中选择“ 钥匙串访问”->“首选项”
  3. 在弹出窗口中,选择“ 证书”选项卡
  4. “在线证书状态协议”和“证书吊销列表”都设置为“关”
  5. 关闭这个视窗
  6. 现在,从工具栏中,打开“ 钥匙串访问”>“证书助手”>“从证书颁发机构请求证书”
  7. 输入您用来在iOS开发者计划中注册的电子邮件地址和常用名
  8. 将CA Email保留为空白,然后选择“保存到磁盘”和“让我指定密钥对信息”
  9. 点击继续
  10. 在硬盘上选择文件名和目的地
  11. 点击保存
  12. 在下一个窗口中,将“ 密钥大小”值设置为“ 2048位”
  13. “算法”设置为“ RSA”
  14. 点击继续

这将创建certSigningRequest文件(CSR)并将其保存到硬盘驱动器。还将在“钥匙串访问”中使用输入的“通用名称”创建公用和专用密钥。

B.在iOS开发人员帐户中创建“ .cer”文件

  1. 登录到Apple开发人员帐户单击“证书,标识符和配置文件”
  2. 点击“配置文件”
  3. 在“证书”部分中,单击“生产”
  4. 单击主面板右上方“添加”(+)按钮
  5. 现在,选择“ App Store和Ad Hoc”
  6. 点击继续
  7. 点击“选择文件”并找到您从硬盘驱动器制作的CSR文件
  8. 点击生成
  9. 单击下载获取文件

C.安装.cer并生成.p12证书

  1. 查找已下载的.cer文件,然后双击
  2. 将登录下拉菜单设置为“登录”,然后单击添加
  3. 打开KeyChain Access,您会发现在步骤A中创建的配置文件
  4. 您可以展开“私钥”配置文件(显示您添加的证书)
  5. 仅选择这两项(而不是公共密钥)
  6. 右键单击,然后从弹出窗口中单击“导出2个项目…”
  7. 现在确保文件格式为“ .p12”,然后在硬盘上选择文件名和目标位置
  8. 单击保存。现在,系统将提示您设置密码,但请将两者都保留为空白
  9. 单击确定。现在,您的硬盘驱动器上有一个.p12文件

请注意,如果问题仍然存在,请尝试以下步骤:

如果您的钥匙串存在于iCloud中,请从iCloud中删除所有钥匙串内容,然后在iCloud中进行新的设置。


我不小心删除了我的私钥表格ke-chain。所以现在我看不到证书下面的私钥。我有CSR文件,如何从CSR重新安装私钥?
Avijit Nagare

1
当我是Windows Phone家伙时,很难弄清楚要生成.p12文件的苹果过程,而这篇文章真的帮助我理解了它。
Mohammed Aamir K

1
非常有用的说明。非常感谢。它节省了很多时间。
Alix

为什么将“在线证书状态协议”和另一个设置为“关”?
Nate

1
我解决了这个问题。向您解释我做了什么:确保您的钥匙串没有出现在iCloud中。一旦存在,就有可能遇到上述问题。我卸载了所有内容,在不使用iCloud中数据的情况下进行了新设置,然后就可以了。
Nazar Medeiros

32

好,问题解决了!看来,当我双击证书时,它会自动将其安装在SYSTEM钥匙串中-我不知道为什么。因此,我只是将证书拖放到LOGIN钥匙串中,然后一切都很好。感谢本文-> 将证书添加到钥匙串并生成.p12文件格式 -Alon Rosenfeld 10个月前


1
哦,哇 我花了几个小时试图解决这个问题。如果不是这个答案,我会再浪费一周。
B 2014年

1
非常感谢。我浪费了很多时间试图解决这个问题。
SaltedBlowfish

1
是的,浪费了数小时,节省了:)
萨汉(Sahan)

29

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



3

对于仍然遇到此问题的任何人,对我来说,解决方案是不要同时选择“导出2个项目”(密钥和证书),而只是导出已经包含密钥的证书。从2016年开始,我认为这是解决问题的方法,因为以前用于导出2个项目的上载不再起作用。


我不能仅将证书导出为p12-您确定这是正确的方法吗?
塞西尔·罗德里格斯

同样在这里。这个非常重要。
Gautam Jain

3

要获取您的p12文件,请按照这种方式进行。

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

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

在此处输入图片说明

第2步。打开“ 钥匙串” >左下方“ 类别”部分>“ 证书”

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

在此处输入图片说明

步骤3.右键单击并通过输入密码将其导出为“ Certificates.p12”。“ 123456”


我没有那个箭头可以扩大
Nazar Medeiros
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.