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

时间:2017-12-09 00:08:06

标签: powershell ssl ssl-certificate

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

所以例如我有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 个答案:

答案 0 :(得分:3)

如果不使用第三方库,您可以依赖x509certificate2 .NET框架的加密类:

$content = [System.IO.File]::ReadAllBytes("D:\mycertificate.cer")
$cer = [system.security.cryptography.x509certificates.x509certificate2]::new($content)

$cer.SignatureAlgorithm.FriendlyName
$cer.Thumbprint
$cer.Subject

然后您将收到如下结果:

sha1RSA
5A6008B61ABADE6412BEE4704C2407D5DE5DAA34
C=GB, O=University College London, OU=Computer Science, CN=FTAM Service