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

Ahm*_*san 2 windows security ssl ssl-certificate

在这里提问之前。我已经搜索了很多关于我的问题。而且问题依然存在。以下是我已经阅读过的帖子的参考。

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

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

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

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

概述

我正在尝试:

视窗 10 64 位

IIS(版本 10.0.16299.15)

我已经安装了 Win32 OpenSSL v1.1.0g

这些是我可用的文件:

  • 服务器.cer

  • 服务器.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
Run Code Online (Sandbox Code Playgroud)

输出 在此处输入图片说明

错误:无法加载证书

我想要的是?

如何从证书和私钥创建 .pfx 文件?让我知道我在代码中做错了什么。

Cry*_*t32 6

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

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

certutil -mergepfx path\server.cer
Run Code Online (Sandbox Code Playgroud)

Certutil 将期望在同一文件夹中找到具有.key文件扩展名的密钥文件。

  • 截至 2022 年 1 月,这在 Windows 11 上的 PowerShell 中仍然有效,并且是迄今为止最简单的解决方案。不过,您确实需要指定输出文件: certutil -mergefx .\server.cer server.pfx (2认同)

Iri*_*ium 3

该命令默认req创建证书请求,而不是证书。如果添加-x509参数,它将使用提供的密钥对请求进行自签名,并输出证书。然后您应该能够成功创建 .pfx。