我需要从 文件系统 上的pfx文件中获取指纹,而不会提示输入需要手动输入的密码。
我将此作为安装程序的一部分运行,其中用户指定文件系统上证书的路径(不在商店中)。用户指定证书的密码。从那时起,我需要指纹。
所以这只是发现一个工具,我可以将路径和密码传递给pfx文件并返回指纹。我已经尝试了几种工具,但即使是针对Windows编译的OpenSSL,它仍然会提示输入密码并提供更多信息而不仅仅是指纹。它需要100%程序化,无需用户进一步干预。
我很想听听有关如何做到这一点的任何想法。这将仅在Windows Server计算机上。谢谢!
答案 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读取。