将.p7b密钥转换为.pfx

Modified on: Sun, 25 Aug 2019 13:00:02 +0800

我有.p7b格式的SSL证书,我需要转换为.pfx。如果我通过Windows证书管理尝试此操作,则禁用专家作为.pfx的选项。

尝试使用openssl我找到了以下两个命令来进行转换:

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

但是我不确定使用什么密钥用于第二个命令,或者CACert.cer引用的证书。

如何将此密钥转换为.pfx格式?

作者:DrStalker

最佳答案

PKCS#7不包括证书/私钥对的私有(密钥)部分,它通常用于证书传播(例如作为对PKCS#10证书请求的响应,作为分发S的手段) / MIME证书用于加密消息或验证签名消息等)。重要的是要记住,它仅适用于定义为公共项目的证书。

PKCS#12是一个更通用的容器 - 它旨在将私钥和公共证书部分存储在一起,以便它们可以移动。它具有密码保护功能,可为密钥提供一些保护。

PFX是PKCS#12的前身。

你不能(如Anitak指出的那样)从没有附加数据(私钥部分)的PKCS#7转换到PKCS#12,因为PKCS#7没有所有数据。

Mark Sutton指出了为什么你无法导出为PFX - 有问题的证书将其私钥标记为不可导出。加密服务提供商(CSP)不允许移动该密钥,这是故意的。唯一可以获得可导出的证书\密钥对的方法是,如果原始证书是在设置了可导出标志的情况下发出的。也可能没有与证书相关联的私钥,但我假设在这里不是这种情况。

对维基百科上的各种PKCS类型进行了总结。

  • 至少是唯一合法的方式。根据CSP \ Crypto硬件,可能存在机制,特别是对于仅有软件的CSP,但这只是我所关心的安全漏洞研究领域,而不是系统管理员。
作者:Helvick

相关问答

添加新评论