使用OpenSSL从PFX文件_without_中提取证书

时间:2009-02-20 14:15:13

标签: pfx

我找到了一个answer that uses OpenSSL,但是我在Windows上,而且我没有轻易拿到它。有没有办法(例如使用CERTUTIL或VBScript)查看.PFX文件中的证书?

如果我使用“certutil -dump”,它会询问密钥的密码。我不想要密钥,证书应该是公开的。

2 个答案:

答案 0 :(得分:4)

在PFX文件中,证书的私钥都是加密的(使用相同的密码)。如果您不知道密码,则无法获得证书。如果您知道,certutil -dump就足够了。

答案 1 :(得分:1)

您可以使用Get-PfxData中的pkiclient

https://docs.microsoft.com/en-us/powershell/module/pkiclient/get-pfxdata?view=win10-ps

示例:

$mypwd = ConvertTo-SecureString -String "localhost" -Force -AsPlainText
$mypfx = Get-PfxData -FilePath C:\Users\oscar\Desktop\localhost.pfx -Password 
$mypfx
$mypfx.EndEntityCertificates

如果存储中有证书,并且需要.sst(Microsoft序列化证书存储),.cer(CERT)或.p7b(PKCS#7)文件,则可以使用{{ 1}}从Export-Certificate中提取出来(或通过MMC导出而没有私钥)。

https://docs.microsoft.com/en-us/powershell/module/pkiclient/export-certificate?view=win10-ps

导出IIS Express生成的本地主机证书的示例:

启动mmc.exe。

然后转到:

文件->添加或删除管理单元->证书->添加->计算机帐户->本地计算机

展开“个人”文件夹,您将看到您的本地主机证书。

双击,转到“详细信息”,然后复制证书指纹。

然后运行命令:

pkiclient

注意:如果您需要当前用户的证书,请在上述命令中将$cert = (Get-ChildItem -Path cert:\LocalMachine\My\{YourThumbprint}) Export-Certificate -Cert $cert -FilePath C:\Users\oscar\Desktop\localhost.cer 替换为LocalMachine