powershell - 如何在不提示输入密码的情况下读取 pfx 文件的指纹

标签 powershell ssl openssl certificate x509

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

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

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

我很想听听有关如何执行此操作的任何想法。这将仅适用于 Windows Server 计算机。谢谢!

最佳答案

我找到了一种方法 - 它涉及下载 OpenSSL for windows 并使用该工具进行转换并使用 powershell 将其读出。

转化

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

读入

$cert = 新对象 System.Security.Cryptography.X509Certificates.X509Certificate2("C:\mycertificates.crt") $thumbprint = $cert.Thumbprint

写主机 $thumbprint

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

关于powershell - 如何在不提示输入密码的情况下读取 pfx 文件的指纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35420531/

相关文章:

java - 在 Java 客户端中接受服务器的自签名 ssl 证书

c++ - 如何使用 OpenSSL 进行 AES 解密

powershell - 脚本 block Powershell远程MSI安装

SSL握手编码和识别

html - 交换 HTML 文件中的文本

ssl - 在链中包含中间证书还是不包含?

ssl - 使用 startssl.com 的无限域、子域证书?

c++ - 问题 : No package 'libcrypto' found

Powershell 控制台菜单选项 - 需要添加换行符吗?

windows - POWERSHELL - Get-service 中的变量 -Name $Var