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

我有以下问题:

我有这些文件

developer_identity.cer

Team_Provisioning_Profile_.mobileprovision

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

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

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

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

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

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

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

  1. 创建密钥对openssl genrsa -out aps_development.key 2048

  2. 创建CSRopenssl 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#12openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12

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

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

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

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

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

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

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

我给你简短的版本:

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