Certmgr.exe (strumento di gestione certificati)

Lo strumento di gestione certificati (Certmgr.exe) gestisce certificati, elenchi di scopi consentiti ai certificati ed elenchi di revoche di certificati (CRL, Certificate Revocation List).

Gestione certificati viene installato con Windows 10 SDK. Per avviare lo strumento, usare il prompt dei comandi per gli sviluppatori di Visual Studio o Visual Studio Developer PowerShell.

Nota

Lo strumento di gestione dei certificati (Certmgr.exe) è un'utilità da riga di comando, da non confondere con lo snap-in certificati (Certmgr.msc) di Microsoft Management Console (MMC). Poiché Certmgr.msc si trova in genere nella directory di sistema di Windows, l'immissione certmgr nella riga di comando può caricare lo snap-in MMC Certificati anche se è stato aperto il prompt dei comandi per gli sviluppatori per Visual Studio. Ciò si verifica perché il percorso dello snap-in precede il percorso dello strumento Gestione certificati nella Path variabile di ambiente. Se si verifica questo problema, è possibile eseguire Certmgr.exe comandi specificando il percorso del file eseguibile, ad esempio %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe.

Per una panoramica dei certificati X.509, vedere Utilizzo dei certificati.

Sintassi

Al prompt dei comandi immettere quanto segue:

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

Parametri

Argomento Descrizione
sourceStorename Archivio certificati contenente certificati, elenchi di scopi consentiti ai certificati o CRL da aggiungere, eliminare, salvare o visualizzare. Può trattarsi di un file di archivio o di un archivio di sistema.
destinationStorename File o archivio certificati di output.
Opzione Descrizione
/add Aggiunge certificati, elenchi di scopi consentiti ai certificati e CRL a un archivio certificati.
/all Aggiunge tutte le voci se usata con /add, Elimina tutte le voci quando vengono usate con /del. Visualizza tutte le voci usate senza le opzioni /add o /del . Non è possibile usare l'opzione /all con /put.
/c Aggiunge i certificati se usata con /add, Elimina i certificati quando vengono usati con /del. Salva i certificati quando vengono usati con /put. Visualizza certificati quando usata senza le opzioni /add, /del o /put.
/CRL Aggiunge i CRL se usata con /add, Elimina i CRL quando vengono usati con /del. Salva i CRL quando vengono usati con /put. Visualizza CRL quando usata senza le opzioni /add, /del o /put.
/CTL Aggiunge gli elenchi di scopi consentiti se usata con /add, Elimina le licenze CRL quando vengono usate con /del. Salva le licenze CRL quando vengono usate con /put. Visualizza gli elenchi di scopi consentiti quando usata senza le opzioni /add, /del o /put.
/del Elimina certificati, elenchi di scopi consentiti e CRL da un archivio certificati.
/e encodingType Specifica il tipo di codifica dei certificati. Il valore predefinito è X509_ASN_ENCODING.
/f dwFlags Specifica il flag di archivio aperto. Si tratta del parametro dwFlags passato a CertOpenStore. Il valore predefinito è CERT_SYSTEM_STORE_CURRENT_USER. Questa opzione viene considerata solo se viene usata l'opzione /y.
/h[elp] Visualizza la sintassi e le opzioni di comando dello strumento.
/n nam Specifica il nome comune del certificato da aggiungere, eliminare o salvare. È possibile usare questa opzione solo con certificati, non con elenchi di scopi consentiti o CRL.
/put Salva su file un certificato X.509, un elenco di scopi consentiti o un CRL da un archivio certificati. Il file viene salvato nel formato X.509. È possibile usare l'opzione /7 con l'opzione /put per salvare il file nel formato PKCS #7. L'opzione /put deve essere seguita da /c, /CTL o /CRL. Non è possibile usare l'opzione /all con /put.
/r location Identifica la posizione dell'archivio di sistema all'interno del Registro di sistema. Questa opzione viene considerata solo se viene specificata l'opzione /s. location deve essere uno degli elementi seguenti:

- currentUser indica che l'archivio certificati si trova sotto la chiave HKEY_CURRENT_USER. Si tratta dell'impostazione predefinita.
- localMachine indica che l'archivio certificati si trova sotto la chiave HKEY_LOCAL_MACHINE.
/s Indica che l'archivio certificati è un archivio di sistema. Se non si specifica questa opzione, l'archivio viene considerato come StoreFile.
/sha1 sha1Hash Specifica l'hash SHA1 del certificato, dell'elenco di scopi consentiti o del CRL da aggiungere, eliminare o salvare.
/v Specifica la modalità dettagliata. Visualizza informazioni dettagliate su certificati, elenchi di scopi consentiti e CRL. Non è possibile usare questa opzione con le opzioni /add, /del o /put.
Provider /y Specifica il nome del provider dell'archivio.
/7 Salva l'archivio di destinazione come oggetto PKCS #7.
/? Visualizza la sintassi e le opzioni di comando dello strumento.

Osservazioni:

Certmgr.exe svolge le seguenti funzioni di base:

  • Visualizza certificati, elenchi di scopi consentiti e CRL sulla console.
  • Aggiunge certificati, elenchi di scopi consentiti ai certificati e CRL a un archivio certificati.
  • Elimina certificati, elenchi di scopi consentiti e CRL da un archivio certificati.
  • Salva su file un certificato X.509, un elenco di scopi consentiti o un CRL da un archivio certificati.

Certmgr.exe funziona con due tipi di archivi certificati: StoreFile e archivi di sistema. Non è necessario specificare il tipo di archivio certificati; Certmgr.exe può identificare il tipo di archivio ed eseguire le operazioni appropriate.

Se Certmgr.exe viene eseguito senza specificare alcuna opzione, verrà avviato lo snap-in certmgr.msc, che comprende una GUI che assisterà l'utente nell'esecuzione delle attività di gestione dei certificati disponibili anche dalla riga di comando. La GUI fornisce una procedura guidata di importazione che consente di copiare certificati, elenchi di scopi consentiti e CRL dal disco a un archivio certificati.

È possibile trovare i nomi degli archivi X509Certificate per i parametri sourceStorename e destinationStorename compilando ed eseguendo il codice seguente.

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

Per altre informazioni sui certificati, vedere Utilizzo dei certificati.

Esempi

Il comando che segue visualizza un archivio di sistema predefinito denominato my con output dettagliato.

certmgr /v /s my

Il comando che segue aggiunge tutti i certificati contenuti in un file denominato myFile.ext in un nuovo file denominato newFile.ext.

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

Il comando che segue aggiunge il certificato contenuto in un file denominato testcert.cer all'archivio di sistema my.

certmgr /add /c testcert.cer /s my

Il comando che segue aggiunge il certificato contenuto in un file denominato TrustedCert.cer all'archivio certificati radice.

certmgr /c /add TrustedCert.cer /s root

Il comando che segue salva un certificato con il nome comune myCert contenuto nell'archivio di sistema my in un file denominato newCert.cer.

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

Il comando che segue elimina tutti gli elenchi di scopi consentiti contenuti nell'archivio di sistema my e salva l'archivio ottenuto in un file denominato newStore.str.

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

Il comando che segue salva nel file my un certificato contenuto nell'archivio di sistema newFile. Verrà chiesto di inserire il numero del certificato presente in my per inserirlo in newFile.

certmgr /put /c /s my newFile

Vedi anche