Certmgr.exe (Menedżer certyfikatów)

Narzędzie Menedżer certyfikatów (Certmgr.exe) zarządza certyfikatami, listami zaufania certyfikatów (CTL) oraz listami odwołania certyfikatów (CRL).

Menedżer certyfikatów jest instalowany automatycznie z programem Visual Studio. Aby uruchomić narzędzie, użyj programu Visual Studio wiersz polecenia dla deweloperów lub Visual Studio Developer PowerShell.

Uwaga

Narzędzie Menedżer certyfikatów (Certmgr.exe) jest narzędziem wiersza polecenia, natomiast narzędzie Certyfikaty (Certmgr.msc) jest przystawką programu Microsoft Management Console (MMC). Ponieważ plik Certmgr.msc znajduje się zwykle w katalogu systemu Windows, certmgr wprowadzenie polecenia w wierszu polecenia może spowodować załadowanie przystawki MMC Certyfikaty, nawet jeśli otwarto wiersz polecenia dla deweloperów dla Visual Studio. Dzieje się tak, ponieważ ścieżka do przystawki ma pierwszeństwo przed ścieżką do narzędzia Menedżer certyfikatów w zmiennej środowiskowej PATH. Jeśli wystąpi ten problem, można wykonywać polecenia programu Certmgr.exe, określając ścieżkę do pliku wykonywalnego.

Omówienie certyfikatów X.509 zawiera temat Praca z certyfikatami.

W wierszu polecenia wpisz następujące polecenie:

Składnia

      certmgr [/add | /del | /put] [options]  
[/s[/r registryLocation]] [sourceStorename]  
[/s[/r registryLocation]] [destinationStorename]  

Parametry

Argument Opis
sourceStorename (nazwa magazynu źródłowego) Magazyn certyfikatów zawierający istniejące certyfikaty, listy CTL lub CRL do dodania, zapisania lub wyświetlenia. Może to być plik magazynu lub magazyn systemowy.
destinationStorename Wyjściowy magazyn lub plik certyfikatów.
Opcja Opis
/Add Dodaje certyfikaty oraz listy CTL i CRL do magazynu certyfikatów.
/all Dodaje wszystkie wpisy, gdy używane z /add. Usuwa wszystkie wpisy w przypadku korzystania z /del. Wyświetla wszystkie wpisy, gdy jest używany bez /add lub /del opcje. Opcji /all nie można używać z /put.
/c Dodaje certyfikaty w przypadku korzystania z /add. Usuwa certyfikaty w przypadku korzystania z /del. Zapisuje certyfikaty w przypadku korzystania z /put. Wyświetla certyfikaty, gdy jest używany bez /add, /del, lub /put opcji.
/CRL Dodaje listy CRL w przypadku korzystania z /add. Usuwa listy CRL w przypadku korzystania z /del. Zapisuje listy CRL w przypadku korzystania z /put. Wyświetla listy CRL, gdy jest używana bez /add, /del, lub /put opcji.
/CTL Dodaje listy CCL, gdy jest używana z /add. Usuwa listy CCL w przypadku korzystania z /del. Zapisuje listy CCL w przypadku korzystania z /put. Wyświetla listy CCL w przypadku użycia bez /add, /del, lub /put opcji.
/del Usuwa certyfikaty oraz listy CTL i CRL z magazynu certyfikatów.
/eencodingType Określa typ kodowania certyfikatu. Wartość domyślna to X509_ASN_ENCODING.
/fdwFlags Określa flagę otwarcia magazynu. Jest to parametr dwFlags przekazany do CertOpenStore. Wartość domyślna to CERT_SYSTEM_STORE_CURRENT_USER. Ta opcja jest rozważana tylko wtedy, gdy /y jest używana opcja.
/h [elp] Wyświetla składnię polecenia i opcje narzędzia.
/nnam Określa wspólną nazwę certyfikatu do dodania, usunięcia lub zapisania. Tej opcji można używać tylko z certyfikatami; nie można używać jej z listami CTL i CRL.
/put Zapisuje certyfikat X.509, listę CTL lub CRL z magazynu certyfikatów w pliku. Plik jest zapisywany w formacie X.509. Można użyć /7 opcji z /put opcji, aby zapisać plik w PKCS #7 formatu. Po opcji /put musi nas nasunić się /c, /CTL lub /CRL. Opcji /all nie można używać z /put.
/rlocation Określa lokalizację w rejestrze magazynu systemowego. Ta opcja jest rozważana tylko wtedy, gdy określisz /s opcji. Lokalizacja musi być jedną z następujących czynności:

- currentUser wskazuje, że magazyn certyfikatów znajduje się w obszarze HKEY_CURRENT_USER klucza. Jest to opcja domyślna.
- localMachine wskazuje, że magazyn certyfikatów znajduje się w obszarze HKEY_LOCAL_MACHINE klucza.
/s Wskazuje, że magazyn certyfikatów jest magazynem systemowym. Jeśli nie określisz tej opcji, magazyn jest traktowany jako StoreFile.
/sha1sha1Hash Określa skrót SHA1 certyfikatu, listy CTL lub CRL do dodania, usunięcia lub zapisania.
/v Określa tryb pełny; wyświetla szczegółowe informacje dotyczące certyfikatu oraz list CTL i CRL. Tej opcji nie można używać z /add, /del, lub /put opcje.
/yprovider Określa nazwę dostawcy magazynu.
/7 Zapisuje magazyn docelowy jako obiekt w formacie PKCS #7.
/? Wyświetla składnię polecenia i opcje narzędzia.

Uwagi

Program Certmgr.exe wykonuje następujące podstawowe funkcje:

  • Wyświetla na konsoli certyfikaty oraz listy CTL i CRL.

  • Dodaje certyfikaty oraz listy CTL i CRL do magazynu certyfikatów.

  • Usuwa certyfikaty oraz listy CTL i CRL z magazynu certyfikatów.

  • Zapisuje certyfikat X.509, listę CTL lub CRL z magazynu certyfikatów w pliku.

Certmgr.exe działa z dwoma typami magazynów certyfikatów: StoreFile i magazynem systemowym. Nie jest konieczne określanie typu magazynu certyfikatów; program Certmgr.exe może zidentyfikować typ magazynu i wykonać odpowiednie operacje.

Uruchomienie programu Certmgr.exe bez określenia żadnej opcji spowoduje uruchomienie przystawki certmgr.msc wyposażonej w graficzny interfejs użytkownika ułatwiający wykonywanie zadań zarządzania certyfikatami, które są również dostępne w wierszu polecenia. Graficzny interfejs użytkownika dostarcza kreatora importu, który kopiuje certyfikaty oraz listy CTL i CRL z dysku do magazynu certyfikatów.

Nazwy magazynów X509Certificate sourceStorename dla parametrów i destinationStorename można znaleźć, kompilując i uruchamiając następujący kod.

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

Aby uzyskać więcej informacji na temat certyfikatów, zobacz Praca z certyfikatami.

Przykłady

Następujące polecenie wyświetla domyślny magazyn systemowy o nazwie z my pełnych danych wyjściowych.

certmgr /v /s my  

Następujące polecenie dodaje wszystkie certyfikaty w pliku o nazwie myFile.ext do nowego pliku o nazwie newFile.ext.

certmgr /add /all /c myFile.ext newFile.ext  

Następujące polecenie dodaje certyfikat w pliku o nazwie testcert.cer do magazynu my systemowego.

certmgr /add /c testcert.cer /s my  

Następujące polecenie dodaje certyfikat w pliku o nazwie do TrustedCert.cer magazynu certyfikatów głównych.

certmgr /c /add TrustedCert.cer /s root  

Następujące polecenie zapisuje certyfikat o nazwie pospolitej myCert w my magazynie systemowym w pliku o nazwie newCert.cer.

certmgr /add /c /n myCert /s my newCert.cer  

Następujące polecenie usuwa wszystkie listy CCL w my magazynie systemowym i zapisuje wynikowy magazyn w pliku o nazwie newStore.str.

certmgr /del /all /ctl /s my newStore.str  

Następujące polecenie zapisuje certyfikat w magazynie my systemowym w pliku newFile. Zostanie wyświetlony monit o wprowadzenie numeru certyfikatu my z polecenia w celu wprowadzenia w programie newFile.

certmgr /put /c /s my newFile  

Zobacz też