如何从 .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.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 文件?让我知道我在代码中做错了什么。

【问题讨论】:

【参考方案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.cerserver.key)并运行以下命令:

certutil -mergepfx path\server.cer

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

【讨论】:

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

以上是关于如何从 .cer 和 .key 获取 .pfx 文件?的主要内容,如果未能解决你的问题,请参考以下文章

将 GoDaddy 颁发的 .spc 和 .key 文件加入完整的 .pfx / .cer 证书

如何从 pfx / cer 创建 snk?

der pem cer crt key pfx等概念及区别

证书私钥不能导出pfx格式,只能cer等格式

SSL证书安装... .pfx,.cer和.txt文件?

如何使用 .pfx 和 .cer 文件创建自签名证书?