![使用 powershell,如何在不安装 SSL 证书的情况下从中提取指纹?](https://linux22.com/image/1433018/%E4%BD%BF%E7%94%A8%20powershell%EF%BC%8C%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E5%AE%89%E8%A3%85%20SSL%20%E8%AF%81%E4%B9%A6%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%BB%8E%E4%B8%AD%E6%8F%90%E5%8F%96%E6%8C%87%E7%BA%B9%EF%BC%9F.png)
我在 StackExchange 和其他互联网论坛等找到的每个示例都告诉我如何从已安装到证书存储中的证书中获取指纹。或者,说明说先安装证书,然后获取指纹。
但是,我确实需要从 pfx 文件中获取指纹没有安装它。
答案1
Select
在 Powershell-3.0 及更高版本中获取一个对象,然后可以与其他属性访问器一起使用:
Get-PfxCertificate -FilePath Certificate.pfx
或者,也可以使用openssl
msys 或 cygwin。但是,这很棘手,因为它是那些将所有有用信息都发送到 stderr 的 *nix 程序之一,而这在 powershell 中处理得很糟糕。
openssl pkcs12 -info -in Certificate.pfx
注意:这两种方法都要求用户输入密码。我还没有找到一种完全自动化的方法来做到这一点,而不需要每次都手动输入密码。
答案2
继前面的答案之后,提供完整而简洁的答案。这将打印给定证书的指纹:
(Get-PfxCertificate <certificate_path>).Thumbprint
它将以交互方式询问证书的密码。使用 @Zehad 的方法以非交互方式提供密码
答案3
你可以使用这个。只需在 powershell 中输入一个命令即可完成所有操作。只需设置路径和密码即可
Get-PfxCertificate -Filepath "PATH OF THE FILE STORED" -Password ($pwd = ConvertTo-SecureString -String "PASSWORD" -Force -AsPlainText)