如何从.cer和.key文件获取.pfx文件?

6

在提问之前,我已经对我的问题进行了大量搜索。但问题仍然存在。下面是我已经阅读过的帖子的参考。

如何从证书和私钥创建.pfx文件?

将CERT/PEM证书转换为PFX证书

如何从.key和.crt文件获取.pem文件?

如何从.cer文件生成.pfx文件?

概述

我正在使用:

Windows 10 64位

IIS(版本10.0.16299.15)

我已安装Win32 OpenSSL v1.1.0g

这些是我可用的文件:

  • server.cer

  • server.key

我尝试了什么?

我也尝试了很多事情,从查找帖子到现在,但是我的经验不足真的妨碍了我的努力。

下面是我在终端中尝试创建server.keyserver.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 文件?请告诉我我的代码哪里出了问题。

2个回答

11

虽然问题已经得到解答,但我想添加一个更简单的解决方案。

在Windows上无需使用任何第三方工具(包括OpenSSL),您可以使用内置的certutil.exe工具。将两个文件放在同一个文件夹中并给文件相同的名称(例如server.cerserver.key),然后运行以下命令:

certutil -mergepfx path\server.cer

Certutil将期望在与扩展名为.key的文件相同的文件夹中找到密钥文件。


2
截至2022年1月,这在Windows 11上的PowerShell中仍然有效,并且是最简单的解决方案。但是您需要指定输出文件:certutil -mergefx .\server.cer server.pfx - Craig Nakamoto

3
req 命令默认创建证书请求,而不是证书。如果添加 -x509 参数,则会使用提供的密钥自签名请求,并输出证书。然后,您应该能够成功创建 .pfx 文件。请注意保留 HTML 标记。

c:\OpenSSL-Win32\bin\openssl.exe req -new -key server.key -out server.cer -config C:\OpenSSL-Win32\bin\openssl.cfg 命令中,我应该在哪里添加 -x509 参数? - Ahmer Ali Ahsan
找到了答案:通过运行以下命令 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 文件。感谢您的帮助。 - Ahmer Ali Ahsan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接