【问题标题】:OpenSsl: how to create PFX/P12 without including CA files?OpenSsl:如何在不包含 CA 文件的情况下创建 PFX/P12?
【发布时间】:2019-07-28 08:10:30
【问题描述】:

我有一个受信任的证书链,一个由这个链颁发的证书和这个证书的私钥文件。

我想为此创建一个 P12 / PFX,所以我可以将它作为客户端证书放在 windows 商店中:

OpenSsl Pkcs12 -export -nokeys
               -certfile mytrustedCertifcates.pem^
               -inkey myPrivateKey.Key^
               -in myCertificate.crt^
               -out myCertificate.P12

唉,生成的文件包含所有trustedCertificates。如果我在我的 Windows 证书存储中导入 P12,我会导入完整的证书链,尽管它们已经在证书存储中。

我也尝试了选项:(来自OpenSsl command line utilities,也在-help中)

  • -nocerts 不输出证书。
  • -clcerts 只输出客户端证书。

唉,P12 还包含完整的证书链,导入 P12 再次导入完整的链。

【问题讨论】:

  • 大概只是完全删除-certfile mytrustedCertificates.pem...-in 是匹配-inkey 的证书,如果您不想要其他任何东西...只是不提供它?
  • BartonJs:太简单了!因为在我使用的大多数其他命令中,我必须包含证书颁发机构。显然 P12 / PFX 不需要这样做

标签: ssl openssl ssl-certificate p12


【解决方案1】:

BartonJs 在评论中给出了答案(谢谢 BartonJs!):

省略 --certfile 参数:

OpenSsl Pkcs12 -export -nokeys
               -name some friendly name
               -inkey myPrivateKey.Key^
               -in myCertificate.crt^
               -out myCertificate.P12
  • nokeys:省略 PEM 密码
  • name:将出现在 winstore 的友好名称列中的友好名称
  • inkey 和 in 是输入证书及其私钥
  • out 是要生成的文件的名称。

在windstore中导入后(命令:certlm.msc),它正确地说:

  • 颁发给:
  • 颁发者:
  • 有效期
  • 预期用途
  • 友好名称:

【讨论】:

    猜你喜欢
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多