我找到了一个使用 OpenSSL 的答案,但我在 Windows 上,而且手头并不容易。有没有办法(例如使用 CERTUTIL 或 VBScript)查看 .PFX 文件中的证书?
如果我使用“certutil -dump”,它会询问密钥的密码。我不想要密钥,并且证书应该是公开的。
我找到了一个使用 OpenSSL 的答案,但我在 Windows 上,而且手头并不容易。有没有办法(例如使用 CERTUTIL 或 VBScript)查看 .PFX 文件中的证书?
如果我使用“certutil -dump”,它会询问密钥的密码。我不想要密钥,并且证书应该是公开的。
在 PFX 文件中,私钥和证书都被加密(使用相同的密码)。如果您不知道密码,您将无法获得证书。如果你知道,certutil -dump
应该就够了。
您可以使用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 $mypwd
$mypfx
$mypfx.EndEntityCertificates
如果您有证书并需要.sst
(Microsoft 序列化证书存储)、.cer
(CERT)或.p7b
(PKCS#7)文件,您可以使用Export-Certificate
(pkiclient
或通过 MMC 导出它而不使用私钥)。
https://docs.microsoft.com/en-us/powershell/module/pkiclient/export-certificate?view=win10-ps
导出 IIS Express 生成的 localhost 证书的示例:
启动 mmc.exe。
然后转到:
文件 -> 添加或删除管理单元 -> 证书 -> 添加 -> 计算机帐户 -> 本地计算机
展开 Personal 文件夹,您将看到您的 localhost 证书。
双击,转到详细信息并复制证书指纹。
然后运行命令:
$cert = (Get-ChildItem -Path cert:\LocalMachine\My\{YourThumbprint})
Export-Certificate -Cert $cert -FilePath C:\Users\oscar\Desktop\localhost.cer
注意:如果您需要当前用户的证书,请在上述命令中替换LocalMachine
为。CurrentUser