无法将apple developer_identity.cer转换为.p12格式。没有证书与私钥匹配

时间:2012-01-20 13:32:47

标签: ios flex adobe flash-builder pkcs#12

我有以下问题:

我有这些文件

  

developer_identity.cer

     

Team_Provisioning_Profile_.mobileprovision

为了打包适用于iOS的adobe flex移动应用程序,我需要将.cer证书转换为.p12格式。在本教程on help.adobe.com之后,我总是在执行last openll命令时遇到此问题:

“没有证书与私钥匹配
pkcs12中的错误“

据我所知,我需要以某种方式获得私钥,用于创建证书(我明白这一点吗?)。如果我只有上面提到的.cer和.mobileprovision文件,我如何获得私钥mykey.key?

4 个答案:

答案 0 :(得分:6)

.cer不包含您的私钥,您无法从中生成.p12文件。您必须从钥匙串同时导出它们。如果你只有.cer文件,它就没用了,你将不得不创建一个新的私钥和证书对。

答案 1 :(得分:5)

如果丢失私钥,不确定是否可以获取私钥。

当您申请证书时,会创建密钥,以便您可以申请新证书,并且应该为您提供私钥。

答案 2 :(得分:3)

当证书是DER编码时,OpenSSL说没有证书与私钥匹配。只需在创建PKCS#12之前将其更改为PEM编码。

  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

答案 3 :(得分:0)

您打开在Applications / Utilities下找到的Keychain Access程序。在右侧的类别列表下,选择“我的证书”。

这将为您提供安装在钥匙串中的所有证书的列表。如果您不熟悉钥匙链是什么。它基本上是一个安全的数据库,包含您的登录密码,证书,私钥等。

下载证书时,应双击它以将其导入到钥匙串中。

然后,您可以在“我的证书”列表中找到您的证书。如果您展开了有兴趣查找私钥的证书,则应该在证书下方显示。

我打赌你只是按照指南做了一些步骤,并不完全确定你做了什么。我们都做得对; - )

这是如何工作的,您最初是在钥匙串访问程序中一起创建公钥和私钥。通常在加密方式中,您使用这些方法的方法是将公钥提供给某人,然后他们可以加密消息并发送给您。只有拥有与此公钥一起创建的私钥的人才能解密该消息。

但任何获取公钥的人都无法确定您是否真的知道这一点。这是证书进入的地方。像大多数人信任的Apple这样的第三方将签署您的公钥,从而创建证书。所以你之前可能做的就是将你的公钥发送给签署它的Apple,从而创建一个你可以下载的证书。

让我给你简短的版本:

  1. 密钥链访问用于创建公钥/私钥
  2. 使用您的公钥创建证书签名请求。这基本上是一个包含公钥的文件,要求Apple使用此公钥创建证书。
  3. Apple添加了大量关于您的信息以及公钥的用途,并将公钥本身添加到成为证书的文件中。然后苹果签了字。
  4. 您下载证书。
  5. 双击并将证书导入您的钥匙串。