如何从 SSL 证书文件(而不是 Windows 证书存储区)中提取指纹?

如何从 SSL 证书文件(而不是 Windows 证书存储区)中提取指纹?

我知道如何获取安装到证书存储区的证书的指纹,但我希望有一种方法可以获取证书文件的该信息。

例如,我有 c:\temp\mycert.com.cer... 我该如何从该文件中获取指纹?这可能吗?谷歌帮不上什么忙。我一直在 powershell 中这样做,以便从证书存储中获取它,但同样 - 我需要从证书文件中获取此信息。

$certCN = mysite.com
$cert = Get-ChildItem cert:\LocalMachine\My -Recurse | where {$_.subject -like "*CN=$certCN*"} | where {$_.ExpiringInDays -lt "91"}
$thumbprint = $cert.thumbprint

答案1

您可以使用 .NET Framework 类的构造函数X509Certificate2仅接受文件名:

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 'C:\path\to\mycert.cer'
$thumbprint = $cert.Thumbprint

此处的对象$cert与您从驱动器获取的对象类型完全相同Cert:\,因此所有其他方法和属性均可用。您还可以从各种不同的证书格式加载信息。

答案2

在 powershell 上使用此命令。

Get-PfxCertificate -Filepath "PATH OF THE FILE STORED" -Password ($pwd = ConvertTo-SecureString -String "PASSWORD" -Force -AsPlainText)

相关内容