powershell 如何读取pfx文件的指纹没有提示密码

jum4pzuy  于 9个月前  发布在  Shell
关注(0)|答案(2)|浏览(80)

我需要从 * 文件系统 * 上的pfx文件中获取指纹,而无需提示输入需要手动输入的密码。**
我将此作为安装程序的一部分运行,其中用户指定文件系统上的证书路径(不在存储中)。并且用户指定证书的密码。从这一点上,我需要拇指指纹。
因此,这只是一个发现工具的问题,我可以将路径和密码传递到pfx文件并返回指纹。我试过几个工具,但即使是OpenSSL编译的windows,它仍然提示密码,并给出了更多的信息,而不仅仅是拇指指纹。它必须是100%的程序化的,没有进一步的用户干预。
我很想听听你的想法。这将仅在Windows Server计算机上进行。谢谢你,谢谢

pgpifvop

pgpifvop1#

当创建.pfx(pkcs#12)文件时,内部存储容器,称为“SafeBags”,也可以加密和签名。
默认情况下,OpenSSL会使用证书的私钥对证书进行沿着加密,这意味着不可能在不知道密码的情况下获取其指纹。
在创建 new pfx时,可以显式添加-certpbe NONE以避免加密证书。更多详情请查看-certpbeOpenSSL's man page

4nkexdtk

4nkexdtk2#

我找到了一种方法来做到这一点-它涉及到下载OpenSSL的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,然后使用X509 Certificate 2读取。

相关问题