Certmgr.exe (Certificate Manager-Tool)
Mit dem Certificate Manager-Tool (Certmgr.exe) können Sie Zertifikate, Zertifikatvertrauenslisten (Certificate Trust Lists, CTLs) und Zertifikatsperrlisten (Certificate Revocation Lists, CRLs) verwalten.
Der Zertifikat-Manager wird mit dem Windows 10 SDK installiert. Um das Tool zu starten, verwenden Sie die Developer-Eingabeaufforderung von Visual Studio oder Visual Studio Developer PowerShell.
Hinweis
Das Certificate Manager-Tool (Certmgr.exe) ist ein Befehlszeilendienstprogramm, wohingegen "Zertifikate" (Certmgr.msc) ein MMC-Snap-In (Microsoft Management Console) ist. Da sich „Certmgr.msc“ normalerweise im Windows-Systemverzeichnis befindet, kann durch die Eingabe von certmgr
in der Befehlszeile das MMC-Snap-In „Zertifikate“ geladen werden, auch wenn Sie die Developer-Eingabeaufforderung für Visual Studio geöffnet haben. Dies geschieht, weil der Pfad zum Snap-In dem Pfad für das Certificate Manager-Tool in der Path
-Umgebungsvariablen vorangestellt ist. Wenn dieses Problem auftritt, können Sie „Certmgr.exe“-Befehle ausführen, indem Sie den Pfad zu der ausführbaren Datei angeben. z. B. %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe.
Einen Überblick über X.509-Zertifikate finden Sie unter Arbeiten mit Zertifikaten.
Syntax
Geben Sie an der Eingabeaufforderung Folgendes ein:
certmgr [/add | /del | /put] [options]
[/s[/r registryLocation]] [sourceStorename]
[/s[/r registryLocation]] [destinationStorename]
Parameter
Argument | BESCHREIBUNG |
---|---|
sourceStorename | Der Zertifikatspeicher, der die vorhandenen Zertifikate, die CTLs oder CRLs enthält, die hinzugefügt, gelöscht, gespeichert oder angezeigt werden sollen. Dabei kann es sich um eine Speicherdatei oder einen Systemspeicher handeln. |
destinationStorename | Der Ausgabezertifikatsspeicher bzw. die Ausgabedatei. |
Option | BESCHREIBUNG |
---|---|
/add | Fügt einem Zertifikatsspeicher Zertifikate, CTLs und CRLs hinzu. |
/all | Fügt bei der Verwendung mit /add alle Einträge hinzu. Löscht bei der Verwendung mit /del alle Einträge. Zeigt bei der Verwendung ohne die Option /add oder /del alle Einträge an. Die Option /all kann nicht mit /put verwendet werden. |
/c | Fügt bei der Verwendung mit /add Zertifikate hinzu. Löscht Zertifikate bei der Verwendung mit /del. Speichert Zertifikate bei der Verwendung mit /put. Zeigt bei der Verwendung ohne die Optionen /add, /del und /put Zertifikate an. |
/CRL | Fügt bei der Verwendung mit /add CRLs hinzu. Löscht CRLs bei der Verwendung mit /del. Speichert CRLs bei der Verwendung mit /put. Zeigt bei der Verwendung ohne die Optionen /add, /del und /put CRLs an. |
/CTL | Fügt bei der Verwendung mit /add CTLs hinzu. Löscht CTLs bei der Verwendung mit /del. Speichert CTLs bei der Verwendung mit /put. Zeigt bei der Verwendung ohne die Option /add, /del oder /put CTLs an. |
/del | Löscht Zertifikate, CTLs und CRLs aus einem Zertifikatspeicher. |
/e encodingType | Gibt den Codierungstyp des Zertifikats an. Der Standardwert ist X509_ASN_ENCODING . |
/f dwFlags | Gibt das Flag zum Öffnen des Speichers an. Dies ist der an CertOpenStore übergebene Parameter dwFlags. Der Standardwert ist CERT_SYSTEM_STORE_CURRENT_USER. Diese Option wird nur bei der Verwendung der Option /y berücksichtigt. |
/h[elp] | Zeigt Befehlssyntax und Optionen für das Tool an. |
/n nam | Gibt den allgemeinen Namen des Zertifikats an, das hinzugefügt, gelöscht oder gespeichert werden soll. Diese Option kann nur für Zertifikate und nicht für CTLs und CRLs verwendet werden. |
/put | Speichert ein X.509-Zertifikat, eine CTL oder eine CRL aus einem Zertifikatspeicher in einer Datei. Die Datei wird im Format X.509 gespeichert. Sie können die Option /7 zusammen mit der Option /put verwenden, um die Datei im PKCS #7-Format zu speichern. Auf die Option /put muss entweder /c, /CTL oder /CR folgen. Die Option /all kann nicht mit /put verwendet werden. |
/r location | Gibt den Speicherort des Systemspeichers in der Registrierung an. Diese Option wird nur berücksichtigt, wenn Sie die Option /s angeben. Für location muss einer der folgenden Werte angegeben werden: - currentUser gibt an, dass sich der Zertifikatspeicher unter dem Schlüssel HKEY_CURRENT_USER befindet. Dies ist die Standardeinstellung.- localMachine gibt an, dass sich der Zertifikatspeicher unter dem Schlüssel HKEY_LOCAL_MACHINE befindet. |
/s | Gibt an, dass der Zertifikatspeicher ein Systemspeicher ist. Wenn Sie diese Option nicht angeben, wird angenommen, dass der Speicher vom Typ StoreFile ist. |
/sha1 sha1Hash | Gibt den SHA1-Hash des Zertifikats, der CTL oder der CRL an, das bzw. die hinzugefügt, gelöscht oder gespeichert werden soll. |
/v | Gibt den ausführlichen Modus an und zeigt detaillierte Informationen über Zertifikate, CTLs und CRLs an. Diese Option kann nicht mit den Optionen /add, /del und /put verwendet werden. |
/y provider | Gibt den Namen des Speicheranbieters an. |
/7 | Speichert den Zielspeicher als PKCS #7-Objekt. |
/? | Zeigt Befehlssyntax und Optionen für das Tool an. |
Hinweise
Von "Certmgr.exe" werden die folgenden Basisfunktionen ausgeführt:
- Zeigt Zertifikate, CTLs und CRLs in der Konsole an.
- Fügt einem Zertifikatsspeicher Zertifikate, CTLs und CRLs hinzu.
- Löscht Zertifikate, CTLs und CRLs aus einem Zertifikatspeicher.
- Speichert ein X.509-Zertifikat, eine CTL oder eine CRL aus einem Zertifikatspeicher in einer Datei.
In „Certmgr.exe“ werden zwei Typen von Zertifikatspeichern verwendet: StoreFile und der Systemspeicher. Sie müssen den Typ des Zertifikatspeichers nicht angeben. „Certmgr.exe“ kann den Speichertyp erkennen und die entsprechenden Operationen ausführen.
Wird "Certmgr.exe" ohne Angabe von Optionen ausgeführt, wird das Snap-In "Certmgr.msc" gestartet. Dessen grafische Benutzeroberfläche (GUI) erleichtert die Aufgaben der Zertifikatsverwaltung, die auch über die Befehlszeile zur Verfügung stehen. Die grafische Benutzeroberfläche bietet einen Import-Assistenten, der Zertifikate, CTLs und CRLs vom Datenträger in einen Zertifikatspeicher kopiert.
Sie können die Namen von "X509Certificate"-Speichern für die Parameter sourceStorename
und destinationStorename
suchen, indem Sie den folgenden Code kompilieren und ausführen.
using System;
using System.Security.Cryptography.X509Certificates;
public class Example
{
public static void Main()
{
foreach (var storeValue in Enum.GetValues(typeof(StoreName))) {
X509Store store = new X509Store((StoreName) storeValue);
store.Open(OpenFlags.ReadOnly);
Console.WriteLine(store.Name);
}
}
}
Imports System.Security.Cryptography.X509Certificates
Module Example
Public Sub Main()
For Each storeValue In [Enum].GetValues(GetType(StoreName))
Dim store As New X509Store(CType(storeValue, StoreName))
store.Open(OpenFlags.ReadOnly)
Console.WriteLine(store.Name)
Next
End Sub
End Module
Weitere Informationen zu Zertifikaten finden Sie unter Arbeiten mit Zertifikaten.
Beispiele
Mit dem folgenden Befehl wird der Standardsystemspeicher my
mit ausführlicher Ausgabe angezeigt.
certmgr /v /s my
Mit dem folgenden Befehl werden alle Zertifikate in der Datei myFile.ext
einer neuen Datei mit dem Namen newFile.ext
hinzugefügt.
certmgr /add /all /c myFile.ext newFile.ext
Mit dem folgenden Befehl wird das Zertifikat in der Datei testcert.cer
zum Systemspeicher my
hinzugefügt.
certmgr /add /c testcert.cer /s my
Mit dem folgenden Befehl wird das Zertifikat in der Datei TrustedCert.cer
zum Stammzertifikatsspeicher hinzugefügt.
certmgr /c /add TrustedCert.cer /s root
Mit dem folgenden Befehl wird ein Zertifikat mit dem allgemeinen Namen myCert
im Systemspeicher my
in die Datei newCert.cer
gespeichert.
certmgr /add /c /n myCert /s my newCert.cer
Mit dem folgenden Befehl werden alle CTLs im Systemspeicher my
gelöscht. Der sich ergebende Speicher wird anschließend in der Datei newStore.str
gespeichert.
certmgr /del /all /ctl /s my newStore.str
Mit dem folgenden Befehl wird ein Zertifikat im Systemspeicher my
in der Datei newFile
gespeichert. Sie werden aufgefordert, die Nummer des Zertifikats aus my
einzugeben, das in newFile
abgelegt werden soll.
certmgr /put /c /s my newFile