将pfx格式转换为p12

Tom*_*res 100 certificate ssl-certificate

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

jgl*_*uie 175

.p12并且.pfx都是PKCS#12文件.我错过了什么吗?

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

  • 有两个文件扩展名的原因是历史.PFX是Microsoft扩展,而P12是Netscape.这两种格式现在都已经过调整,这意味着开发人员可以使用.NET System.Security.Cryptography.X509Certificates命名空间来处理这两种格式.有关详细信息,请参阅[此处](https://embeddedtechwire.wordpress.com/2010/09/23/pfx-or-p12-certificates-what-is-the-difference/). (22认同)
  • 让你想知道为什么它们是两个不同的文件扩展名,如果它们真的是相同的东西. (8认同)
  • PKCS#12文件的文件扩展名是".p12"或".pfx".微软的"PFX"受到了极大的批评,认为它是最复杂的加密协议之一.PKCS#12是微软"PFX"的继承者.PKCS#12是由RSA实验室出版的称为公钥加密标准(PKCS)的标准系列之一. (5认同)
  • 重命名并不总是有效,因为。例如,如果您使用 SoapUI 并测试它的双向身份验证,它会失败。p12 和 pfx 的历史可以追溯到 Netscape 和 IE。它们几乎是相同但不相同的文件。因此,一些应用程序可以理解两者,无论扩展名如何,而其他应用程序则需要 100% 兼容的有效 p12,例如 SoapUI (2认同)

use*_*045 10

我在使用openconnect的.pfx文件时遇到了麻烦.重命名并没有解决问题.我使用keytool将其转换为.p12并且它有效.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx
Run Code Online (Sandbox Code Playgroud)

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

  • 不起作用,即使我对两者都使用了相同的密码。得到错误“keytool 错误:java.io.IOException:无效的密钥库格式” (4认同)

Kei*_*lan 5

这更像是 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
Run Code Online (Sandbox Code Playgroud)

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

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


小智 5

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