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

Dom*_*tti 8 powershell certificate ssl

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

例如,我有 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
Run Code Online (Sandbox Code Playgroud)

Ben*_*n N 9

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

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 'C:\path\to\mycert.cer'
$thumbprint = $cert.Thumbprint
Run Code Online (Sandbox Code Playgroud)

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