将pfx格式转换为p12


119

我需要将.pfx格式证书(从Windows mmc)导出到.p12,以便在另一个应用程序中使用。我找不到解决办法。谁能建议一种方法?

Answers:


202

.p12.pfx都是PKCS#12文件。我想念什么吗?

您是否尝试过重命名导出的.pfx文件以具有.p12扩展名?


9
让您想知道如果它们实际上是同一回事,为什么它们是两个不同的文件扩展名。
BrainSlugs83

28
有两个文件扩展名的原因是历史性的。PFX是Microsoft的扩展,而P12是Netscape的扩展。两种格式现在都已修改为相同,这意味着开发人员可以使用.NET System.Security.Cryptography.X509Certificates命名空间来同时使用这两种格式。有关更多信息,请参见此处
SnapShot 2014年

6
PKCS#12文件的文件扩展名是“ .p12”或“ .pfx”。微软的“ PFX”已被批评为最复杂的加密协议之一。PKCS#12是微软“ PFX”的后继产品。PKCS#12是RSA实验室发布的称为公共密钥密码学标准(PKCS)的标准系列之一。
2014年

1
重命名并不总是有效,因为。例如,如果您使用SoapUI并对其进行2向身份验证,则它将失败。p12和pfx的历史可以追溯到Netscape和IE。它们几乎是相同但不相同的文件。因此某些应用无论扩展名都可以理解,而其他应用则需要100%兼容的有效p12,例如SoapUI
M.Hefny,2018年

10

我在使用openconnect的.pfx文件时遇到了麻烦。重命名并不能解决问题。我使用keytool将其转换为.p12并成功运行。

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

在我的情况下,新文件(new.p12)的密码必须与.pfx文件的密码相同。


2
即使我对两者都使用了相同的密码,也无法使用。得到了错误“ keytool错误:java.io.IOException:无效的密钥库格式”
John Smith

5

如果您正在寻找使用UI的快速手动过程。我总是使用Mozilla Firefox从PFX转换为P12。首先将证书导入Firefox浏览器(“选项”>“隐私和安全性”>“查看证书...”>“导入...”)。安装后,通过从证书管理器中选择证书名称来执行导出以创建P12文件,然后单击“备份...”,然后输入文件名,然后输入密码。


4

这更多是jglouie响应的延续。

如果您使用openssl将PKCS#12证书转换为公用/专用PEM密钥,则无需重命名该文件。假设文件名为cert.pfx,以下三个命令将创建一个公共pem密钥和一个加密的私有pem密钥:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

前两个命令可能会提示您输入导入密码。这将是PKCS#12文件随附的密码。

第三个命令将允许您指定证书的加密密码。这是使用证书时将输入的内容。


第一个命令将覆盖第二个命令,因此也许只需执行步骤2和3。对于读者来说,FYI,Des3是私钥的默认加密。
goodguys_activate

1

运行此命令将.cert文件更改为.p12

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

server.key服务器密钥在哪里,并且server.cert是CA颁发证书或自签名证书文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.