
Die folgenden grafischen MMC-Snap-Ins werden normalerweise zum Verwalten von Zertifikaten in Windows verwendet: „certlm.msc“ (Lokale Maschinenzertifikate), „certmgr.msc“ (Benutzerzertifikate) und das Befehlszeilendienstprogramm „certutil“. Alle diese Tools interagieren mit den logischen Zertifikatsspeichern, die die physischen Speicherorte öffentlicher und privater Zertifikatsschlüssel auf der Festplatte und in der Registrierung von Endbenutzern und Apps abstrahieren.
Logische und physische Speicherorte für Zertifikate in Windows
Öffentliche und private Schlüssel von Zertifikaten werden in Windows nicht am selben zentralen Ort gespeichert. Die öffentlichen Schlüssel der Zertifikate werden in der Registrierung gespeichert (können extrahiert werden), ihre privaten Schlüssel (falls vorhanden) werden jedoch im Dateisystem gespeichert und verschlüsselt.
Standardmäßig zeigt der Windows-Zertifikatmanager („certmgr.msc“) nur eine logische Ansicht der Zertifikatspeicher an. Um die Speicher für physische Zertifikate in der Konsole anzuzeigen, wählen Sie im Menü „Ansicht->Optionen“ und aktivieren Sie die Speicher für physische Zertifikate. Die Konsole zeigt nun Zertifikatsschlüssel gruppiert nach ihrem physischen Speicherort (Registrierung, lokaler Computer, Smartcard usw.) an.

Zertifikate im Register:
Zertifikatsspeicher |
Registrierungsschlüssel |
Beschreibung—|—|—Benutzer |
HKCU\SOFTWARE\Microsoft\SystemCertificates |
Öffentliche Schlüssel von Benutzerzertifikaten
Benutzer |
HKCU\SOFTWARE\Policies\Microsoft\SystemCertificates |
Öffentliche Schlüssel von Benutzerzertifikaten, die mithilfe von AD-Gruppenrichtlinien bereitgestellt werden
Computer |
HKLM\SOFTWARE\Microsoft\SystemCertificates |
Öffentliche Schlüssel des Maschinenzertifikats
Computer |
HKLM\SOFTWARE\Microsoft\Cryptography\Services |
Öffentliche Schlüssel allgemeiner Dienste
Computer |
HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates |
Öffentliche Schlüssel von Maschinenzertifikaten, die über GPO installiert wurden
Computer |
HKLM\SOFTWARE\Microsoft\EnterpriseCertificates |
Die öffentlichen Schlüssel der Maschine wurden von einer Unternehmenszertifizierungsstelle in einer AD-Domäne installiert.
Private Schlüssel des Zertifikats auf einem Systemlaufwerk:
Benutzer |
%APPDATA%\Microsoft\SystemCertificates |
In diesem Verzeichnis werden öffentliche Benutzerschlüssel und Zeiger auf private Zertifikatsschlüssel gespeichert.—|—|—Benutzer |
%APPDATA%\Microsoft\Crypto |
Private Schlüsselcontainer des Benutzers
Computer |
%ProgramData%\Microsoft\Crypto |
Private Schlüsselcontainer maschinell bearbeiten
DPAPI-Verschlüsselung. Dadurch wird sichergestellt, dass nur der Kontoinhaber, der das Passwort kennt, die privaten Schlüssel entschlüsseln kann. Dies schützt private Schlüssel vor einem Angreifer
Windows verwendet einen Hauptverschlüsselungsschlüssel, der auf dem Anmeldekennwort des Benutzers basiert, um private Schlüssel des Zertifikats zu schützen. Dadurch wird sichergestellt, dass nur der Kontoinhaber, der das Passwort kennt, die privaten Schlüssel entschlüsseln kann. Dies schützt private Schlüssel, wenn ein Angreifer das lokale Administratorkennwort auf einem Computer zurücksetzt.
Ähnlich wie Sie auf Objekte im Dateisystem zugreifen, können Sie über PowerShell mithilfe des integrierten Cert-Anbieters auf den logischen Zertifikatsspeicher zugreifen.
Dies ist beispielsweise ein PowerShell-Befehl, der zum Navigieren zum Zertifikatspeicher des Computers verwendet wird.
cd Cert:\LocalMachine\my
Zertifikate im LocalMachine-Store auflisten:
Get-Item *

Alternativ können Sie den Befehl certutil verwenden, um die Maschinenzertifikate aufzulisten:
certutil-store MY
Zertifikate aus der Windows-Registrierung extrahieren
Die Zertifikate werden unter dem Registrierungsschlüssel „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY“ gespeichert. Sie können anhand ihres Fingerabdrucks im Namen des Registrierungsschlüssels identifiziert werden. Die Daten für jedes Zertifikat werden in einem BLOB-Binärwert gespeichert, der das vollständige Zertifikat im DER-codierten Format enthält.
![]()
Verwenden Sie dieses PowerShell-Skript, um BLOB-Zertifikatsdaten anhand ihres Fingerabdrucks aus der Registrierung zu extrahieren. Konvertieren Sie dann die Daten in das X509Certificate2-Format und drucken Sie die Zertifikatsinformationen aus:
` $regPath=“HKLM:\SOFTWARE\Microsoft\SystemCertificates\MY\Certificates\D9DA2EDD7CBC0EFBF476276672DEBFD56870AAF8”$blob=(Get-ItemProperty-Path $regPath).Blob
$cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2-ArgumentList (, $blob)
$cert | Formatliste Betreff, Aussteller, NotBefore, NotAfter, Fingerabdruck `

Um dieses Public-Key-Zertifikat als CER-Datei zu exportieren (zur Übertragung auf einen anderen Computer), führen Sie die folgenden Befehle aus:
` $certBytes=$cert.Export(System.Security.Cryptography.X509Certificates.X509ContentType::Cert)
System.IO.File::WriteAllBytes(“c:\temp\exported_certificate.cer”, $certBytes) `

Dieser Ansatz ist nützlich für die Analyse des Zertifikatspeichers eines ausgefallenen Systems, indem Daten aus seinen Offline-Registrierungsstrukturen extrahiert werden. Dadurch können Sie alle öffentlichen Teile der auf einem Computer installierten Zertifikate extrahieren.
Verwenden Sie das RecoverOfflineCertificate-Skript, um private Schlüssel von einem Offline-Computer zu exportieren.
*️⃣ Quelllink:
Zertifikate, die mithilfe von AD-Gruppenrichtlinien bereitgestellt werden, , setzt das lokale Administratorkennwort zurück, , RecoverOfflineCertificate ,