如何在没有提示输入密码的情况下阅读pfx文件的指纹

时间:2016-02-15 22:47:21

标签: powershell ssl openssl certificate x509

我需要从 文件系统 上的pfx文件中获取指纹,而不会提示输入需要手动输入的密码。

我将此作为安装程序的一部分运行,其中用户指定文件系统上证书的路径(不在商店中)。用户指定证书的密码。从那时起,我需要指纹。

所以这只是发现一个工具,我可以将路径和密码传递给pfx文件并返回指纹。我已经尝试了几种工具,但即使是针对Windows编译的OpenSSL,它仍然会提示输入密码并提供更多信息而不仅仅是指纹。它需要100%程序化,无需用户进一步干预。

我很想听听有关如何做到这一点的任何想法。这将仅在Windows Server计算机上。谢谢!

2 个答案:

答案 0 :(得分:0)

在创建.pfx(pkcs#12)文件时,也可以对内部存储容器“ SafeBags”进行加密和签名。

默认情况下,OpenSSL会对证书及其私钥进行加密,这意味着不可能在不知道密码的情况下获取其指纹。

在创建 new pfx时,可以显式添加-certpbe NONE以避免加密证书。 有关更多详细信息,请检查-certpbe OpenSSL's man page

答案 1 :(得分:-1)

我找到了一种方法 - 它涉及下载OpenSSL for windows并使用该工具转换并使用PowerShell来读取它。

<强>转换

&安培; openssl pkcs12 -in C:\ LocalHost.pfx -out C:\ mycertificates.crt -nokeys -clcerts -passin pass:ActualPassword

读入

$ cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(“C:\ mycertificates.crt”) $ thumbprint = $ cert.Thumbprint

write-host $ thumbprint

所以我必须先转换为crt / cer,然后使用X509Certificate2读取。