如何从 .cer 和 .key 获取 .pfx 文件?
Posted
技术标签:
【中文标题】如何从 .cer 和 .key 获取 .pfx 文件?【英文标题】:How to get .pfx file from .cer and .key? 【发布时间】:2018-07-05 23:46:43 【问题描述】:在这里提问之前。我已经搜索了很多关于我的问题。而且问题依然存在。以下是我已经阅读过的帖子的参考。
How to create .pfx file from certificate and private key?
Convert a CERT/PEM certificate to a PFX certificate
How to get .pem file from .key and .crt files?
How to generate a .pfx file from a .cer file?
概述
我正在努力:
Windows 10 64 位
IIS(版本 10.0.16299.15)
我已经安装了 Win32 OpenSSL v1.1.0g
这些是我可用的文件:
server.cer
server.key
我尝试了什么?
我也尝试过各种不同的事情,包括浏览帖子,但我在这方面缺乏经验确实阻碍了我的努力。
我尝试在终端中创建server.key
和server.cer
文件的以下命令。
set RANDFILE=c:\certificate\.md
set OPENSSL_CONF=c:\OpenSSL-Win32\bin\openssl.cfg
c:\OpenSSL-Win32\bin\openssl.exe genrsa -out server.key 2048`
c:\OpenSSL-Win32\bin\openssl.exe req -new -key server.key -out server.cer -config C:\OpenSSL-Win32\bin\openssl.cfg
c:\OpenSSL-Win32\bin\openssl.exe pkcs12 -export -in server.cer -inkey server.key -out server.pfx
输出
错误:无法加载证书
我想要什么?
如何从证书和私钥创建 .pfx 文件?让我知道我在代码中做错了什么。
【问题讨论】:
【参考方案1】:req
命令默认创建证书请求,而不是证书。如果添加-x509
参数,它将使用提供的密钥对请求进行自签名,并输出证书。然后您应该能够成功创建 .pfx。
【讨论】:
我在c:\OpenSSL-Win32\bin\openssl.exe req -new -key server.key -out server.cer -config C:\OpenSSL-Win32\bin\openssl.cfg
中添加 -x509
参数的地方
找到我的答案:通过运行此命令req -x509 -newkey rsa:2048 -nodes -keyout server.key -days 365 -out server.cer
,然后我运行pkcs12 -export -in server.cer -inkey server.key -out server.pfx
.pfx
文件成功生成。感谢您的帮助。【参考方案2】:
虽然问题已得到解答,但我想添加一个更简单的解决方案。
无需在 Windows 上使用任何第 3 方工具(包括 OpenSSL)。您可以使用内置的certutil.exe
工具。将两个文件放在同一个文件夹中,并为文件指定相同的名称(例如server.cer
和server.key
)并运行以下命令:
certutil -mergepfx path\server.cer
Certutil 将期望在同一文件夹中找到具有.key
文件扩展名的密钥文件。
【讨论】:
截至 2022 年 1 月,这在 Windows 11 上的 PowerShell 中仍然有效,它是迄今为止最简单的解决方案。您确实需要指定输出文件: certutil -mergefx .\server.cer server.pfx以上是关于如何从 .cer 和 .key 获取 .pfx 文件?的主要内容,如果未能解决你的问题,请参考以下文章