了解将 .pem 文件转换为 .pfx 的 OpenSSL 步骤 [关闭]
Posted
技术标签:
【中文标题】了解将 .pem 文件转换为 .pfx 的 OpenSSL 步骤 [关闭]【英文标题】:Understanding OpenSSL Steps for Converting .pem file to .pfx [closed] 【发布时间】:2014-04-30 19:18:35 【问题描述】:我正在使用 Cros-s-rider 开发一个插件,并且需要一个代码签名证书作为该过程的一部分。为此,我采取了以下措施
按照 GoDaddy 的说明生成 CSR,如图所示 here
将 CSR 和私钥发送给客户并要求他们购买他们所做的 CSC
客户从 GoDaddy 向我发送了 .pem 和 .spc 文件
我使用 OpenSSL 将 .pem 文件转换为 Cros-s-rider 所需的 .pfx
OpenSSL> pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.pem
当 OpenSSL 要求我“输入导出密码”时,我使用了与生成 CSR 时相同的密码。
我将 .pfx 文件上传到 Cros-s-rider 并再次提供了相同的密码
Cros-s-rider 说文件或密码无效。我在上述步骤中是否犯了任何错误或遗漏了什么?
更新:太平洋标准时间 04/30 4:45
来自 GoDaddy 的 .pem 文件已经显示了四个 -----BEGIN CERTIFICATE-----
和 -----END CERTIFICATE-----
组,所以看起来他们进行了链接?我能够将我生成的 .pfx 文件导入到 OSX 上的 KeyChain Access 中,它会显示我们的公司名称,并由 GoDaddy 发布,其中包含所有详细信息。
当我运行 openssl 验证这是我得到的...
OpenSSL> verify certificate.pem
certificate.pem: /C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
error 18 at 0 depth lookup:self signed certificate
OK
我很迷茫,所以请提供任何建议。我可以发布任何信息来帮助解决。
【问题讨论】:
Adding an intermediate certificates to a pkcs12 file的可能重复 您似乎缺少颁发证书的 CA 的中间体。在创建PFX|P12
文件之前,您必须手动将它们添加到 certificate.pem
。
@jww - 感谢您的回复。我刚刚阅读了您的链接帖子,并正在尝试消化信息。我用更多信息修改了我的问题,可能会提供更多见解。
要解决 OpenSSL 问题:从 GoDaddy CA Repository 下载适当的 CA(Go Daddy Class 2 证书颁发机构)。然后发出openssl verify certificate.pem -CAFile <xxx>
,其中<xxx>
是您下载的CA。你应该得到类似于Verify return code: 0 (Ok)
的东西。如果一切正常,请在上传前尝试从PFX|P12
文件中删除密码。无论如何,密码都是有争议的,因为它已上传到服务器并可能存储在文件系统中。
@jww – 我怎么知道要下载哪一个?我尝试了两个似乎适用的根证书 gd-class2-root.crt 和 gdroot-g2.crt 但是当我将它们指定为 CAFile 时它们都抛出错误:Error opening certificate file -CAFile
【参考方案1】:
这是 Cros-s-rider 的问题,而不是 .pfx 文件的 OpenSSL 生成问题。昨晚我将问题发布到他们的支持委员会,他们回复说他们的开发团队看了看并要求我再试一次。我上传了它,它成功了。
【讨论】:
如前所述,CSC 上传机制存在问题,现已解决。 @ThinkCL,感谢您报告问题并为给您带来的不便深表歉意 [披露:我是 Cros-s-rider 员工]以上是关于了解将 .pem 文件转换为 .pfx 的 OpenSSL 步骤 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenSSL 以编程方式将 .PEM 证书转换为 .PFX