无法将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编码。
-
创建密钥对 :
openssl genrsa -out aps_development.key 2048
-
创建CSR :
openssl req -new -sha256 -key aps_development.key -out aps_development.csr
-
将CSR上载到开发人员门户以获取证书
aps_development.cer
-
转换证书 :
openssl x509 -inform DER -outform PEM -in aps_development.cer -out aps_development.pem
-
构建PKCS#12 :
openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12
您打开在Applications / Utilities下找到的Keychain Access程序。 在右侧的类别列表下,选择“我的证书”。
这将为您提供安装在钥匙串中的所有证书的列表。 如果您不熟悉钥匙链是什么。 它基本上是一个安全的数据库,包含您的登录密码,证书,私钥等。
下载证书时,应双击它以将其导入到钥匙串中。
然后,您可以在“我的证书”列表中找到您的证书。 如果您扩展了您想要查找私钥的证书,则应该在证书下方显示。
我打赌你只是按照指南做了一些步骤,并不完全确定你做了什么。 我们都做得对;-)
这是如何工作的,您最初在钥匙串访问程序中一起创建公钥和私钥。 通常在加密中,您使用这些的方式是将公钥提供给某人,然后他们可以加密消息并发送给您。 只有具有与此公钥一起创建的私钥的人才能解密该消息。
但是任何获得你公钥的人都无法确定你是否真的这么做。 这就是证书的来源。像大多数人信任的Apple这样的第三方将签署您的公钥,从而创建证书。 所以你之前可能做的就是将你的公钥发送给签署它的Apple,从而创建一个你可以下载的证书。
我给你简短的版本:
- 密钥链访问用于创建公钥/私钥
- 您使用您的公钥创建证书签名请求。 这基本上是一个包含公钥的文件,要求Apple从此公钥创建证书。
- Apple添加了大量关于您的信息以及公钥的用途,并将公钥本身添加到成为证书的文件中。 然后苹果签了这个。
- 您下载证书。
- 双击并将证书导入您的钥匙串。