Certmgr.exe (Ferramenta Gerenciador de Certificados)
A ferramenta Gerenciador de Certificados (Certmgr.exe) gerencia certificados, listas de certificados confiáveis (CTLs) e listas de revogação de certificados (CRLs).
O Gerenciador de Certificados é instalado com o SDK do Windows 10. Para iniciar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.
Nota
A ferramenta Gerenciador de Certificados (Certmgr.exe) é um utilitário de linha de comando, enquanto Certificados (Certmgr.msc) é um snap-in do MMC (Console de Gerenciamento Microsoft). Como Certmgr.msc geralmente é encontrado no diretório Sistema Windows, entrar certmgr
na linha de comando pode carregar o snap-in Certificados MMC, mesmo que você tenha aberto o prompt de comando do desenvolvedor para Visual Studio. Isso ocorre porque o caminho para o snap-in precede o caminho para a ferramenta Gerenciador de Certificados na Path
variável de ambiente. Se você encontrar esse problema, você pode executar comandos Certmgr.exe especificando o caminho para o executável, por exemplo, %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe.
Para obter uma visão geral dos certificados X.509, consulte Trabalhando com certificados.
Sintaxe
No prompt de comando, digite o seguinte:
certmgr [/add | /del | /put] [options]
[/s[/r registryLocation]] [sourceStorename]
[/s[/r registryLocation]] [destinationStorename]
Parâmetros
Argumento | Description |
---|---|
sourceStorename | O armazenamento de certificados que contém os certificados, CTLs ou CRLs existentes para adicionar, excluir, salvar ou exibir. Pode ser um arquivo de armazenamento ou um armazenamento de sistemas. |
destinationNome da loja | O arquivo ou armazenamento de certificados de saída. |
Opção | Description |
---|---|
/adicionar | Adiciona certificados, CTLs e CRLs a um repositório de certificados. |
/todos | Adiciona todas as entradas quando usado com /add. Exclui todas as entradas quando usado com /del. Exibe todas as entradas quando usadas sem as opções /add ou /del . A opção /all não pode ser usada com /put. |
/c | Adiciona certificados quando usado com /add. Exclui certificados quando usado com /del. Salva certificados quando usado com /put. Exibe certificados quando usados sem a opção /add, /del ou /put . |
/CRL | Adiciona CRLs quando usado com /add. Exclui CRLs quando usado com /del. Salva CRLs quando usado com /put. Exibe CRLs quando usadas sem a opção /add, /del ou /put. |
/CTL | Adiciona CTLs quando usado com /add. Exclui CTLs quando usado com /del. Salva CTLs quando usado com /put. Exibe CTLs quando usado sem a opção /add, /del ou /put. |
/del | Exclui certificados, CTLs e CRLs de um armazenamento de certificados. |
/e encodingType | Especifica o tipo de codificação do certificado. A predefinição é X509_ASN_ENCODING . |
/f dwFlags | Especifica o sinalizador de abertura da loja. Este é o parâmetro dwFlags passado para CertOpenStore. O valor padrão é CERT_SYSTEM_STORE_CURRENT_USER. Esta opção só é considerada se for utilizada a opção /y . |
/h[ELP] | Exibe a sintaxe do comando e as opções da ferramenta. |
/n Nam | Especifica o nome comum do certificado a ser adicionado, excluído ou salvo. Esta opção só pode ser utilizada com certificados; ele não pode ser usado com CTLs ou CRLs. |
/colocar | Salva um certificado X.509, CTL ou CRL de um armazenamento de certificados em um arquivo. O ficheiro é guardado no formato X.509. Você pode usar a opção /7 com a opção /put para salvar o arquivo no formato PKCS #7. A opção /put deve ser seguida por /c, /CTL ou /CRL. A opção /all não pode ser usada com /put. |
/r localização | Identifica o local do registro do armazenamento do sistema. Esta opção é considerada somente se você especificar a opção /s . A localização deve ser uma das seguintes: - currentUser Indica que o armazenamento de certificados está sob a chave HKEY_CURRENT_USER. Esta é a predefinição.- localMachine Indica que o armazenamento de certificados está sob a chave HKEY_LOCAL_MACHINE. |
/s | Indica que o armazenamento de certificados é um armazenamento do sistema. Se você não especificar essa opção, o repositório será considerado um StoreFile. |
/sha1 sha1Hash | Especifica o hash SHA1 do certificado, CTL ou CRL a ser adicionado, excluído ou salvo. |
/v | Especifica o modo detalhado; exibe informações detalhadas sobre certificados, CTLs e CRLs. Esta opção não pode ser usada com as opções /add, /del ou /put. |
/y provedor | Especifica o nome do provedor de armazenamento. |
/7 | Salva o armazenamento de destino como um objeto PKCS #7. |
/? | Exibe a sintaxe do comando e as opções da ferramenta. |
Observações
Certmgr.exe executa as seguintes funções básicas:
- Exibe certificados, CTLs e CRLs no console.
- Adiciona certificados, CTLs e CRLs a um repositório de certificados.
- Exclui certificados, CTLs e CRLs de um armazenamento de certificados.
- Salva um certificado X.509, CTL ou CRL de um armazenamento de certificados em um arquivo.
Certmgr.exe funciona com dois tipos de armazenamentos de certificados: StoreFile e armazenamento do sistema. Não é necessário especificar o tipo de armazenamento de certificados; Certmgr.exe pode identificar o tipo de loja e executar as operações apropriadas.
Executar Certmgr.exe sem especificar nenhuma opção inicia o snap-in certmgr.msc, que tem uma GUI que ajuda com as tarefas de gerenciamento de certificados que também estão disponíveis na linha de comando. A GUI fornece um assistente de importação, que copia certificados, CTLs e CRLs do disco para um armazenamento de certificados.
Você pode encontrar os nomes dos repositórios X509Certificate para os sourceStorename
parâmetros e destinationStorename
compilando e executando o código a seguir.
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, consulte Trabalhando com certificados.
Exemplos
O comando a seguir exibe um armazenamento de sistema padrão chamado my
com saída detalhada.
certmgr /v /s my
O comando a seguir adiciona todos os certificados em um arquivo chamado myFile.ext
para um novo arquivo chamado newFile.ext
.
certmgr /add /all /c myFile.ext newFile.ext
O comando a seguir adiciona o certificado em um arquivo chamado testcert.cer
para o armazenamento do my
sistema.
certmgr /add /c testcert.cer /s my
O comando a seguir adiciona o certificado em um arquivo chamado TrustedCert.cer
ao armazenamento de certificados raiz.
certmgr /c /add TrustedCert.cer /s root
O comando a seguir salva um certificado com o nome myCert
comum no armazenamento do my
sistema em um arquivo chamado newCert.cer
.
certmgr /add /c /n myCert /s my newCert.cer
O comando a seguir exclui todas as CTLs no armazenamento do my
sistema e salva o armazenamento resultante em um arquivo chamado newStore.str
.
certmgr /del /all /ctl /s my newStore.str
O comando a seguir salva um certificado no armazenamento do my
sistema no arquivo newFile
. Você será solicitado a inserir o número do certificado de my
para colocar em newFile
.
certmgr /put /c /s my newFile