如何将现有私钥用于新的iOS开发证书?

时间:2010-12-29 05:52:41

标签: iphone ios certificate private-key ios-provisioning

出于审美原因,我想使用我之前用于创建分发证书的相同私钥来创建新的开发证书(我的旧证书已过期)。但iOS配置门户上的“如何创建开发证书:”要求您使用Keychain Access创建新密钥。当我尝试做Keychain Access>证书助理>从证书颁发机构申请证书使用“(我的密钥名称)”证书助理实际上不会创建CSR文件。

有谁知道是否可以这样做,如果有,怎么做?

4 个答案:

答案 0 :(得分:52)

首先,我必须将钥匙串中的私钥导出为p12文件。我尝试编写脚本,但没有成功。

  1. 打开钥匙串并选择您的私钥
  2. 右键单击并选择“导出”
  3. 使用p12文件类型。
  4. 运行以下openssl命令将受密码保护的p12文件转换为pem。 openssl会提示输入密码。

    openssl pkcs12 -in your-newly-exported-p12-file.p12 -out your-newly-exported-p12-file-as-a-pem.pem -nodes
    

    在pem文件上运行以下命令以生成csr。

    openssl req -new -key your-newly-exported-p12-file-as-a-pem.pem -out your-csr-to-submit-to-apple.csr
    

答案 1 :(得分:4)

要从Keychain Access中的现有私钥生成CSR,只需在要使用的私钥上单击鼠标右键(双指单击),然后选择 要求证书颁发机构证明“(我的钥匙名)”

然后输入用户电子邮件地址和CA电子邮件地址(我只使用相同的电子邮件地址),然后选择保存到磁盘。

答案 2 :(得分:2)

您对OpenSSL和命令行感到满意吗?邮件列表中有discussion关于手动创建CSR的信息。 FWIW,我无法使用Keychain Access / Certificate Assistant中的选定密钥创建CSR。

答案 3 :(得分:0)

我今天经历了这个地狱。我想自动导出密钥以通过命令行创建CSR。我发现了一个用c写的工具,它承诺了我想要的东西:keychain_access。我编译并玩弄它但无法导出我的分发密钥。我使用最新的Apple安全API和keychain项属性打印从头开始再次创建该工具,但仍无法通过标签找到密钥。我能够在没有标签搜索的情况下列出它。在绝望的尝试中,我重命名为键入钥匙串访问工具并将其重命名为旧名称。之后,我的工具最终通过标签挑选密钥。右键单击REQUEST A CERTIFICATE FROM A CERTIFICATE AUTHORITY WITH "(My Key Name)"也开始重复工作。似乎该名称以不同的编码或其他方式保存。不是事件苹果自己的钥匙串访问工具能够找到密钥!