【问题标题】:Convert PFX to PEM and error "unable to load certificate"将 PFX 转换为 PEM 并出现错误“无法加载证书”
【发布时间】:2016-07-11 03:42:51
【问题描述】:

我正在尝试将通配符 SSL 证书转换为 PEM 格式,以便可以在 Amazon 的 Cloudfront 中使用它。我唯一可用的文件格式是 pfx。我尝试使用以下命令:

从 PFX 中提取私钥

openssl pkcs12 -in {site}.pfx  -nocerts -nodes -passin pass:{password} | openssl rsa -out {site}.key

从 PFX 中提取公钥

openssl pkcs12 –in {site}.pfx -clcerts -nokeys -passin pass:{password} | openssl x509 -out {site}.cer

从 PFX 中提取链束

openssl pkcs12 -in {site}.pfx -nodes -nokeys -cacerts -passin pass:{password} | openssl x509 -out bundle.crt

前两个命令运行没有任何问题,但最后一个返回以下内容:

MAC verified OK
unable to load certificate
17856:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:701:Expecting: TRUSTED CERTIFICATE

任何帮助将不胜感激!

【问题讨论】:

  • 当(且仅当)PFX 包含 just 服务器证书和 no CA 证书时,您应该会收到该错误。执行openssl pkcs12 -in whatever.pfx -nokeys 并查看显示了多少 BEGIN CERTIFICATE/END CERTIFICATE 块以及每个块的名称(主题和颁发者)。 PS:-nodes 无用,与-nokeys 一起忽略;如果/当有多个 CA 证书时,通过 openssl x509 的管道会丢弃除第一个之外的所有证书,从而给出可能无用的结果。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?

标签: ssl openssl amazon-cloudfront pem pfx


【解决方案1】:

使用openssl 中的pkcs12 上下文,您可以从pfx 文件中指定您想要的组件。如果您不需要签名证书而只需要颁发者证书,请尝试以下操作:

openssl pkcs12 -in mycerts.pfx -cacerts -out myissuercerts.cer

要获得 crt 文件扩展名,只需将文件从 .cer 重命名为 .crt。 http://www.networksolutions.com/support/what-is-the-difference-between-a-crt-and-a-cer-file/

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 2019-12-21
    • 2013-10-14
    • 2021-08-06
    • 2011-03-07
    • 2019-07-02
    • 2018-11-24
    相关资源
    最近更新 更多