将cer(带有csr和key)转换为pfx

3

我可以从cer、csr和key文件中制作PFX证书吗?

实际上,我有这些文件:

  • ceti.cer
  • ceti.csr
  • ceti.key

Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎不适合,因为它与编程或开发无关。请参阅帮助中心中的可以在这里提问的主题。也许Super UserUnix & Linux Stack Exchange会更适合您的提问。另请参阅我应该在哪里发布有关Dev Ops的问题? - undefined
4个回答

2

编辑:命令已修复。确保您的ceti.cer已经编码为PEM格式。

您可以使用以下命令:

openssl pkcs12 -export -out ceti.pfx -inkey ceti.key -in ceti.cer

1
我尝试了,得到了这个消息 正在将'screen'加载到随机状态 - 完成 没有证书与私钥匹配 并创建一个空的 ceti.pfx 文件。 - undefined
OpenSSL pkcs12 命令表示:“读取证书和私钥的文件名,默认情况下为标准输入。它们必须全部采用 PEM 格式”(http://www.openssl.org/docs/manmaster/apps/pkcs12.html)。如果不是这种情况,您可以将它们从 DER 编码转换为 PEM 编码。 - undefined
1
命令在Ubuntu 17.10上无法运行。出现了错误信息"无法加载证书",但是使用-inkey、-in和-certfile参数指定的文件确实存在。现在不知道该怎么办了。 - undefined
@Freude 看一下这个其他的问题/答案:https://serverfault.com/questions/473155/unable-to-load-certificate-in-openssl - undefined
这个答案似乎是错误的;-in文件应该是证书,而不是签名请求。 - undefined

2

这个命令对我很有帮助:

openssl pkcs12 -export -out user.pfx -inkey user.key -in user.cer -certfile rootca.crt

以上的响应返回了一个错误"无法加载证书"。


1
“-in” 应该是 .cer 文件,“-certfile” 应该是 .cabundle.pem 文件,一旦 CSR 请求已由根/中间 CA 签名,就不需要它了。因此,正确的语法是:
openssl pkcs12 -export -out ceti.pfx -inkey private.key -in signed.cer -certfile cabundle.pem
要捆绑根/中间 pem 文件,运行类似以下内容的命令:
cat root.crt intermediateca.crt subordinateca.crt > cabundle.pem

0
你应该先将.csr和.key转换为crt。请参考我的步骤:
1. openssl x509 -req -in myDomainName.csr -signkey myDomainName.key -out myDomainName.crt
2. openssl pkcs12 -export -out certificate.pfx -inkey myDomainName.key -in myDomainName.crt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接