我理解如何获取已安装到证书库的证书的指纹,但是我希望有一种方法可以从证书文件中获取该信息。
所以例如我有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
提前谢谢!!
答案 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