从 .pfx 文件中提取证书和私钥文件
Posted e峰小屋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从 .pfx 文件中提取证书和私钥文件相关的知识,希望对你有一定的参考价值。
有时需要从 Windows 计算机导出证书和私钥,以分离证书和密钥文件以供其他地方使用。
Windows 不提供完成此过程的方法。
从 Windows 证书存储中导出证书描述了如何将证书和私钥导出到单个 .pfx 文件中。
按照以下过程从 .pfx 文件中提取单独的证书和私钥文件。
获取您导出的文件(例如 certname.pfx)并将其复制到安装了 OpenSSL 的系统中。
注意:*.pfx 文件为 PKCS#12 格式,包括证书和私钥。
- 运行以下命令导出私钥:
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes
- 运行以下命令导出证书:
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
- 运行以下命令以从私钥中删除密码:
openssl rsa -in key.pem -out server.key
如何使用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 文件中提取证书和私钥文件的主要内容,如果未能解决你的问题,请参考以下文章