从 .pfx 文件中提取证书和私钥文件

Posted e峰小屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从 .pfx 文件中提取证书和私钥文件相关的知识,希望对你有一定的参考价值。

 

有时需要从 Windows 计算机导出证书和私钥,以分离证书和密钥文件以供其他地方使用。

Windows 不提供完成此过程的方法。

从 Windows 证书存储中导出证书描述了如何将证书和私钥导出到单个 .pfx 文件中。
按照以下过程从 .pfx 文件中提取单独的证书和私钥文件。

获取您导出的文件(例如 certname.pfx)并将其复制到安装了 OpenSSL 的系统中。
注意:*.pfx 文件为 PKCS#12 格式,包括证书和私钥。

  1. 运行以下命令导出私钥:openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes
  2. 运行以下命令导出证书:openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
  3. 运行以下命令以从私钥中删除密码:openssl rsa -in key.pem -out server.key

转自https://www.cnblogs.com/zhangyiqiu/p/16320416.html

如何使用openssl从pfx文件中提取私钥? [关闭]

【中文标题】如何使用openssl从pfx文件中提取私钥? [关闭]【英文标题】:How to extract private key from pfx file using openssl? [closed] 【发布时间】:2013-04-30 03:44:44 【问题描述】:

我一直在寻找此私钥以在 Softlayer 的“添加证书”向导中添加 ssl 证书,并进一步将其与本地负载均衡器一起使用。

我用谷歌搜索并尝试了以下 openssl 命令:

openssl pkcs12 -in filename.pfx -nocerts -out key.pem

但我最终得到了无效的“RSA PRIVATE KEY”。请帮忙。

【问题讨论】:

【参考方案1】:

您可以在这个问题中检查两件事,

    确保在您使用的 OpenSLL 命令中添加 -nodes 属性,因此提取的 RSA 私钥将是未加密的。例如,

    pkcs12 -in certificate-name.pfx -nocerts -nodes -out private-key.pem
    

    你可以从 Private Key 中去掉 bag 和 key 属性行,试试看。

在我的博客上查看对此问题的一个很好的解释:How To Extract Private Key From PFX Certificate File

【讨论】:

如果您要链接到自己的网站,则需要明确说明。另见How not to be a spammer.【参考方案2】:

您的命令是正确的,并为您提供了 PKCS#8 格式的加密私钥。如果您需要未加密私钥,只需添加-nodes 选项:

openssl pkcs12 -in filename.pfx -nocerts -nodes -out key.pem

如果您需要旧 RSA 格式的私钥,您应该使用openssl pkcs8 命令转换给定的密钥:

openssl pkcs8 -in key.pem -out rsakey.pem

详见文档:

https://www.openssl.org/docs/man1.1.0/apps/pkcs12.html https://www.openssl.org/docs/man1.1.0/apps/pkcs8.html

【讨论】:

以上是关于从 .pfx 文件中提取证书和私钥文件的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中以编程方式将证书和私钥转换为 .PFX

如何使用openssl从pfx文件中提取私钥? [关闭]

pfx文件是不是包含根证书

从jks证书中提取公钥和私钥(jks证书转pem证书)

如何把SSL公钥和私钥转化为PFX格式

如何从苹果全球开发者证书和 .p12 文件中提取公钥和私钥?