Wie kann ich den Fingerabdruck aus einer SSL-Zertifikatsdatei (nicht aus dem Windows-Zertifikatspeicher) ziehen?

2

Ich verstehe, wie man den Fingerabdruck eines Zertifikats abruft, das in einem Zertifikatspeicher installiert ist. Ich hoffe jedoch, dass es eine Möglichkeit gibt, diese Informationen für eine Zertifikatdatei abzurufen.

Zum Beispiel hätte ich c: \ temp \ mycert.com.cer ... wie würde ich den Fingerabdruck von dieser Datei bekommen? Ist es überhaupt möglich? Google ist nicht sehr hilfreich. Ich habe dies in Powershell als solches ausgeführt, um dies aus dem Zertifikatspeicher abzurufen, aber ich muss diese Informationen aus einer Zertifikatdatei abrufen.

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

Antworten:

1

Sie können den Konstruktor der .NET Framework-Klasse verwenden X509Certificate2 das braucht nur einen Dateinamen:

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

Das $cert Das Objekt hier ist vom exakt gleichen Typ wie die Objekte, die Sie aus dem Objekt erhalten Cert:\ Laufwerk, so dass alle anderen Methoden und Eigenschaften zur Verfügung stehen. Sie können auch Informationen aus verschiedenen Zertifikatformaten laden.

Ben N
quelle