【发布时间】:2014-04-30 19:18:35
【问题描述】:
我正在使用 Crossrider 开发一个插件,并且需要一个代码签名证书作为该过程的一部分。为此,我采取了以下措施
按照 GoDaddy 的说明生成 CSR,如图所示 here
将 CSR 和私钥发送给客户并要求他们购买他们所做的 CSC
客户从 GoDaddy 向我发送了 .pem 和 .spc 文件
-
我使用 OpenSSL 将 .pem 文件转换为 Crossrider 所需的 .pfx
OpenSSL> pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.pem 当 OpenSSL 要求我“输入导出密码”时,我使用了与生成 CSR 时相同的密码。
我将 .pfx 文件上传到 Crossrider 并再次提供了相同的密码
Crossrider 说文件或密码无效。我在上述步骤中是否犯了任何错误或遗漏了什么?
更新:太平洋标准时间 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
我很迷茫,所以请提供任何建议。我可以发布任何信息来帮助解决。
【问题讨论】:
-
您似乎缺少颁发证书的 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
标签: openssl pem pfx crossrider code-signing-certificate