Certmgr.exe (Ferramenta do Gestor de Certificados)

A ferramenta Gestor de Certificados (Certmgr.exe) gere certificados, listas de confiança de certificados (CTLs) e listas de revogação de certificados (CRLs).

O Gestor de Certificados é instalado com o SDK Windows 10. Para iniciar a ferramenta, utilize a Linha de Comandos para Programadores do Visual Studio ou o PowerShell para Programadores do Visual Studio.

Nota

A ferramenta Gestor de Certificados (Certmgr.exe) é um utilitário de linha de comandos, enquanto os Certificados (Certmgr.msc) são um snap-in da Consola de Gestão da Microsoft (MMC). Uma vez que o Certmgr.msc é geralmente encontrado no diretório do Sistema Windows, a introdução certmgr na linha de comandos pode carregar o snap-in Certificados MMC, mesmo que tenha aberto a Linha de Comandos do Programador para Visual Studio. Isto ocorre porque o caminho para o snap-in precede o caminho para a ferramenta Gestor de Certificados na variável de Path ambiente. Se encontrar este problema, pode executar Certmgr.exe comandos ao especificar o caminho para o executável, por exemplo, %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe.

Para obter uma descrição geral dos certificados X.509, consulte Trabalhar com Certificados.

Syntax

Na linha de comandos, introduza o seguinte:

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

Parâmetros

Argumento Description
sourceStorename O arquivo de certificados que contém os certificados existentes, CTLs ou CRLs para adicionar, eliminar, guardar ou apresentar. Pode ser um ficheiro de arquivo ou um arquivo de sistemas.
destinationStorename O arquivo ou ficheiro de certificados de saída.
Opção Descrição
/add Adiciona certificados, CTLs e CRLs a um arquivo de certificados.
/all Adiciona todas as entradas quando utilizadas com /add. Elimina todas as entradas quando utilizadas com /del. Apresenta todas as entradas quando utilizadas sem as opções /add ou /del . A opção /all não pode ser utilizada com /put.
/c Adiciona certificados quando utilizados com /add. Elimina certificados quando utilizados com /del. Guarda certificados quando utilizado com /put. Apresenta certificados quando utilizados sem a opção /add, /del ou /put .
/CRL Adiciona CRLs quando utilizados com /add. Elimina CRLs quando utilizado com /del. Guarda CRLs quando utilizado com /put. Apresenta CRLs quando utilizados sem a opção /add, /del ou /put .
/CTL Adiciona CTLs quando utilizado com /add. Elimina CTLs quando utilizado com /del. Guarda CTLs quando utilizado com /put. Apresenta CTLs quando utilizados sem a opção /add, /del ou /put .
/del Elimina certificados, CTLs e CRLs de um arquivo de certificados.
/eencodingType Especifica o tipo de codificação de certificado. A predefinição é X509_ASN_ENCODING.
/fdwFlags Especifica o sinalizador aberto do arquivo. Este é o parâmetro dwFlags transmitido para CertOpenStore. O valor predefinido é CERT_SYSTEM_STORE_CURRENT_USER. Esta opção só é considerada se for utilizada a opção /y .
/h[elp] Apresenta a sintaxe do comando e as opções da ferramenta.
/nnam Especifica o nome comum do certificado para adicionar, eliminar ou guardar. Esta opção só pode ser utilizada com certificados; não pode ser utilizado com CTLs ou CRLs.
/put Guarda um certificado X.509, CTL ou CRL de um arquivo de certificados num ficheiro. O ficheiro é guardado no formato X.509. Pode utilizar a opção /7 com a opção /put para guardar o ficheiro no formato PKCS #7. A opção /put tem de ser seguida por /c, /CTL ou /CRL. A opção /all não pode ser utilizada com /put.
/rlocalização Identifica a localização do registo do arquivo do sistema. Esta opção só é considerada se especificar a opção /s . A localização tem de ser uma das seguintes:

- currentUser indica que o arquivo de certificados está na chave de HKEY_CURRENT_USER. Esta é a predefinição.
- localMachine indica que o arquivo de certificados está na chave HKEY_LOCAL_MACHINE.
/s Indica que o arquivo de certificados é um arquivo de sistema. Se não especificar esta opção, o arquivo é considerado um StoreFile.
/sha1sha1Hash Especifica o hash SHA1 do certificado, CTL ou CRL para adicionar, eliminar ou guardar.
/v Especifica o modo verboso; apresenta informações detalhadas sobre certificados, CTLs e CRLs. Esta opção não pode ser utilizada com as opções /add, /del ou /put .
fornecedor /y Especifica o nome do fornecedor da loja.
/7 Guarda o arquivo de destino como um objeto PKCS #7.
/? Apresenta a sintaxe do comando e as opções da ferramenta.

Observações

Certmgr.exe executa as seguintes funções básicas:

  • Apresenta certificados, CTLs e CRLs na consola do .
  • Adiciona certificados, CTLs e CRLs a um arquivo de certificados.
  • Elimina certificados, CTLs e CRLs de um arquivo de certificados.
  • Guarda um certificado X.509, CTL ou CRL de um arquivo de certificados num ficheiro.

Certmgr.exe funciona com dois tipos de arquivos de certificados: StoreFile e arquivo de sistema. Não é necessário especificar o tipo de arquivo de certificados; Certmgr.exe pode identificar o tipo de arquivo e efetuar as operações adequadas.

Executar Certmgr.exe sem especificar nenhuma opção inicia o snap-in certmgr.msc, que tem uma GUI que ajuda com as tarefas de gestão de certificados que também estão disponíveis a partir da linha de comandos. A GUI fornece um assistente de importação, que copia certificados, CTLs e CRLs do disco para um arquivo de certificados.

Pode encontrar os nomes dos arquivos X509Certificate para os sourceStorename parâmetros e destinationStorename ao compilar e executar o seguinte código.

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

Para obter mais informações sobre certificados, veja Trabalhar com Certificados.

Exemplos

O comando seguinte apresenta um arquivo de sistema predefinido chamado my com saída verbosa.

certmgr /v /s my

O comando seguinte adiciona todos os certificados num ficheiro chamado myFile.ext a um novo ficheiro chamado newFile.ext.

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

O comando seguinte adiciona o certificado num ficheiro com o nome testcert.cer ao arquivo do my sistema.

certmgr /add /c testcert.cer /s my

O comando seguinte adiciona o certificado num ficheiro com o nome TrustedCert.cer ao arquivo de certificados de raiz.

certmgr /c /add TrustedCert.cer /s root

O comando seguinte guarda um certificado com o nome myCert comum no arquivo do my sistema num ficheiro chamado newCert.cer.

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

O comando seguinte elimina todas as CTLs no arquivo do my sistema e guarda o arquivo resultante num ficheiro chamado newStore.str.

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

O comando seguinte guarda um certificado no arquivo do my sistema no ficheiro newFile. Ser-lhe-á pedido que introduza o número do certificado de my para colocar no newFile.

certmgr /put /c /s my newFile

Ver também