MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

NSS Tools certutil

Usando a Ferramenta de Banco de Dados de Certificado

A Ferramenta de Banco de Dados de Certificado (em inglês, "Certificate Database Tool") é um utilitário de linha de comando que pode criar e modificar os arquivos de banco de dados cert8.db e key3.db do Netscape Communicator. Ela também pode listar, gerar, modificar ou excluir certificados do arquivo cert8.db e criar ou alterar a senha, gerar novos pares de chaves públicas e privadas, exibir o conteúdo do banco de dados de chave, ou excluir os pares de chaves do arquivo key3.db.

O processo de gerenciamento de chave e certificado geralmente começa com a criação de chaves no banco de dados de chave e, então, geração e gerenciamento de certificados no banco de dados de certificado.

Esse documento discute gerenciamento de banco de dados de chave e certificado. Para gerenciamento de banco de dados de módulo de segurança de informações, veja Usando a Ferramenta de Banco de Dados de Segurança.

Disponibilidade

Veja as notas de lançamento para as plataformas para as quais essa ferramenta está disponível.

Sintaxe

Para executar a Ferramenta de Banco de Dados de Certificado, digite o comando

certutil opção [argumentos ]

sendo  opção e argumentos combinações das opções e argumentos listados na seção a seguir. Cada comando leva uma opção. Cada opção pode levar zero ou mais argumentos. Para ver uma mensagem sobre o uso, execute o comando sem opções ou com a opçaõ -H.

Opções e Argumentos

Opções especificam uma ação e estão em letras maiúsculas. Argumentos de opções modificam uma ação e estão em letras minúsculas. As opções do comando de Ferramenta de Banco de Dados de Certificado e seus argumentos são definidos abaixo:

 Opções

 

-N

Cria novos bancos de dados de certificado e de chave.

-S

Cria um certificado individual e o adiciona a um banco de dados de certificado.

-R

Cria um arquivo de requisição de certificado (certificate-request) que pode ser enviado a uma Autoridade Certificadora (AC) para processamento em um certificado final. A saída padrão é para a saída padrão, a menos que você use o argumento -ooutput-file. Use o argumento -a para especificar a saída em ASCII.

-C

Cria um novo arquivo binário de certificado a partir do arquivo binário de requisição de certificado. Use o argumento -i para especificar o arquivo de requisição de certificado. Se esse argumento não for usado, a Ferramenta de Banco de Dados de Certificado pergunta por um nome de arquivo.

-G

Gera um novo par de chaves pública e privada. O banco de dados de chave já deve existir; se um não estiver presente, essa opção vai inicializar um por padrão. Alguns cartões inteligentes (por exemplo, o cartão Litronic) podem armazenar apenas um par de chaves. Se você criar um novo par de chaves para tal cartão, o par anterior é sobrescrito.

-F

Exclui uma chave privada de um banco de dados de chave. Especifique a chave para excluir com o argumento -n. Especifique o banco de dados do qual a chave será excluída com o argumento -d.

 

Use o argumento -k para especificar explicitamente se deve-se excluir uma chave DSA ou RSA. Se você não usar o argumento -k, a opção procura por uma chave RSA que corresponda com o apelido.

 

Quando você excluir chaves, certifique-se de remover quaisquer certificados associados àquelas chaves do banco de dados de certificado, usando -D.

 

Alguns cartões inteligentes (por exemplo, o cartão Litronic) não permite que você remova uma chave pública que você gerou. Neste caso, apenas a chave privada é excluída do par de chaves. Você pode exibir a chave pública com o comando certutil -K -htokenname .

-K

Lista o keyID das chaves no banco de dados de chave. Uma keyID é o modulus da chave RSA ou o publicValue da chave DSA. IDs são exibidos em hexadecimal ("0x" não é mostrado).

-A

Adiciona um certificado existente a um banco de dados de certificado. O banco de dados de certificado já deve existir; se um não estiver presente, essa opção vai inicializar um por padrão.

-D

Exclui um certificado do banco de dados de certificado.

-L

Lista todos os certificados ou exibe informações sobre um certificado nomeado, em um banco de dados de certificado.

 

Use o argumento -htokenname para especificar o banco de dados de certificado em um token de hardware ou software em particular.

-V

Verifica a validade de um certificado e seus atributos.

-M

Modifica os atributos de confiança de um certificado usando os valores do argumento -t.

-H

Exibe uma lista das opções e argumentos usados pela Ferramenta de Banco de Dados de Certificado.

-W

Altera a senha para um banco de dados de chave.

-U

Lista todos os módulos disponíveis ou exibe um módulo específico nomeado.

Argumentos

 

-a

Usa formato ASCII ou permite o uso de formato ASCII para entrada ou saída. Essa formatação segue RFC 1113. Para requisições de certificados, saída ASCII padrão vai para a saída padrão, a menos que seja redirecionada.

-b validity-time

Especifica um tempo até o qual um certificado é exigido ser válido. Use ao verificar a validade de certificado com a opção -V. O formato do argumento tempo-validade é "YYMMDDHHMMSS[+HHMM|-HHMM|Z]". Especificação de segundos (SS) é opcional. Ao especificar um tempo explícito, use "YYMMDDHHMMSSZ". Ao especificar um tempo de compensação, use "YYMMDDHHMMSS+HHMM" ou "YYMMDDHHMMSS-HHMM". Se essa opção não for usada, a verificação de validade tem como padrão o tempo de sistema atual.

-c issuer

Identifica o certificado da AC a partir da qual um novo certificado derivará sua autenticidade. Use o apelido exato do certificado da AC, ou use o endereço de email da AC. Coloque a string emissor entre aspas se ela contiver espaços.

-d directory

Especifica o diretório de banco de dados contendo os arquivos de banco de dados de certificado e chave. No Unix, a Ferramenta de Banco de Dados de Certificado usa como padrão $HOME/.netscape (isto é, ~/.netscape). No Windows NT usa como padrão o diretório atual.

 

Os arquivos de banco de dados cert8.db e key3.db devem residir no mesmo diretório.

-P dbprefix

Especifica o prefixo usado nos  cert8.db e key3.db (por exemplo, my_cert8.db e my_key3.db). Essa opção é fornecida como um caso especial. Alterar os nomes dos bancos de dados de certificado e chave não é recomendado.

-e

Verifica a assinatura do certificado durante o processo de validação de um certificado.

-f password-file

Especifica um arquivo que fornecerá automaticamente a senha para incluir um certificado ou para acessar um banco de dados de certificado. Esse é um arquivo texto simples contendo uma senha. Certifique-se de evitar acesso não autorizado a este arquivo.

-g keysize

Define um tamanho de chave para usar ao gerar novos pares de chave pública e privada. O mínimo é 512 bits e o máximo é 8192 bits. O padrão é 1024 bits. qualquer tamanho que seja um múltiplo de 8 entre o mínimo e o máximo é permitido.

-h tokenname

Especifica o nome de um token para usar ou agir sobre. A menos que especificado, o token padrão é um slot interno (especialmente, slot interno 2). Esse slot também pode ser nomeado explicitamente com a string "internal". Um slot interno é um slot virtual mantido por software, em vez de por dispositivo hardware. Slot interno 2 é usado por serviços de chave e certificado. Slot interno 1 é usado por serviços critográficos.

-i cert|cert-request-file

Especifica um certificado ou um arquivo de requisição de certificado.

-k rsa|dsa|all

Especifica o tipo de uma chave: RSA, DSA ou ambos. O valor padrão é rsa. Ao especificar o tipo de chave você pode evitar erros causados por apelidos duplicados.

-l

Exibe informações detalhdadas ao validar um certificado com a opção -V.

-m serial-number

Atribui um número de série único para um certificao sendo criado. Essa opção deve ser realizada por um AC. O número de série padrão é 0 (zero). Números de séries são limitados a inteiros.

-n nickname

Especifica o apelido de um certificado ou chave para listar, criar, adicionar a um banco de dados, modificar ou validar. Coloque a string nickname entre aspas se ela contiver espaços.

-o output-file

Especifica o nome de arquivo de saída para novos certificados ou requisições binárias de certificados. Coloque a string output-file entre aspas se ela contiver espaços. Se esse argumento não foi usado, o destino de saída usado por padrão é a saída padrão.

-p phone

Especifica um número de telefone de contato a ser incluído em novos certificados ou requisições de certificados. Coloque a string phone entre aspas se ela contiver espaços.

-q pqgfile

Lê um valor PQG alternativo a partir do arquivo especificado ao gerar pares de chaves DSA. Se esse argumento não for usado, a Ferramenta de Banco de Dados de Chave gera seu próprio valor de PQG. Arquivos PQG são criados com um utilitário DSA separado.

-r

Exibe uma codificação DER binária do certificado ao listar informações sobre aquele certificado com a opção -L.

-s subject

Identifica um dono de um certificado em particular para novos certificados ou requisições de certificados. Coloque a string subject entre aspas se ela contiver espaços. O formato de identificação do sujeito segue RFC 1485.

-t trustargs

Especifica os atributos de confiança a serem modificados em um certificado existente ou para serem aplicados em um certificado ao criá-lo ou adicioná-lo a um banco de dados.

 

Há três categorias de confiança disponíveis para cada certificado, expressado nesta ordem: "SSL ,email ,assinatura de objeto ". Em cada posição de categoria use zero ou mais para os seguintes códigos de atributos:

 

p    Proibido (explicitamente não confiada)
P    Par confiável
c    AC válida
T    AC confiável para emitir certificados de clientes (implica em c)
C    AC confiável para emitir certificados de servidores (SSL apenas)
      (implica em c)
u    Certificado pode ser usado para autenticação ou assinatura
w    Envia aviso (use com outros atributos para incluir um aviso quando o certificado é usado naquele contexto)

 

Os códigos de atributos para as categorias são separados por vírgulas, e todo o conjunto de atributos é envolto por aspas. Por exemplo:

-t "TCu,Cu,Tuw"

 

Use a opção -L para ver uma lista de certificados e atributos confiáveis atuais em um banco de dados de certificado.

-u certusage

Especifica um contexto de uso a ser aplicado ao validade um certificado com a opção -V. Os contextos são os seguintes:

 

C (como um cliente SSL)
V (como um servidor SSL)
S (como um assinador de email)
R (como um destinatário de email)

-v valid-months

Define o número de meses nos quais um novo certificado será válido. O período de validade começa no horário atual do sistema, a menos que uma compensação seja adicionada ou substraída com a opção -w. Se esse argumento não for usado, o período de validade padrão é três meses. Quando esse argumento é usado, período padrão de três meses é automaticamente adicionado a qualquer valor dado no argumento valid-month. Por exemplo, usar essa opção para definir um valor de 3 causaria 3 ser adicionado ao padrão de três meses, criando um período de validade de seis meses. Você pode usar valores negativos para reduzir o período padrão. Por exemplo, definir um valor de -2 subtrairia 2 do padrão e criaria um período de validade de um mês.

-w offset-months

Define uma compensação a partir do horário atual do sistema, em meses, para o começo de um período de validade do certificado. Use ao criar o certificado ou adicioná-lo a um banco de dados. Expresse a compensação em inteiros, usando um sinal de menos (-) para indicar uma compensação negativa. Se esse argumento não foi usado, o período de validade começa no horário atual do sistema. O tamanho da validade é definida com o argumento -v.

-x

Usa a Ferramenta de Banco de Dados de Certificado para gerar a assinatura para um certificado sendo criado ou adicionado a um banco de dados, em vez de obter uma assinatura a partir de uma AC separada.

-y exp

Define um valor de exponente alternativo a ser usado na geração de uma nova chave pública de RSA para um banco de dados, em vez do valor padrão de 65537. Os valores alternativos disponíveis são 3 e 17.

-z noise-file

Lê um valor inicial a partir do arquivo do arquivo binário especificado a ser usado na geração de um novo par de chaves privada e pública RSA. Esse argumento torna possível usar valores iniciais gerados por hardware e desnecessário criar manualmente um valor do teclado. O tamanho mínimo de arquivo é 20 bytes.

-1

Adiciona uma extensão de uso da chave a um certificado que está sendo criado ou adicionado a um banco de dados. Essa extensão permite que uma chave do certificado seja dedicada a dar suporte a operações específicas tais como um servidor SSL ou assinatura de objeto. A Ferramenta de Banco de Dados de Certificado vai lhe solicitar um uso em particular para o chave do certificado. Esses usos são descritas sob Standard X.509 v3 Certificate Extensions no Apêndice A.3 do Guia de Administração do Sistema de Certificados da Red Hat.

-2

Adiciona uma extensão de restrição básica a um certificado que está sendo criado ou adicionado a um banco de dados. Essa extensão oferece suporte ao processo de verificação da cadeia de certificados. A Ferramenta de Banco de Dados de Certificado solicitará que você selecione a extensão de restrição de certificado. Extensões de restrição são descritas sob Standard X.509 v3 Certificate Extensions no Apêndice A.3 do Guia de Administração do Sistema de Certificados da Red Hat.

-3

Adiciona uma extensão de keyID de autoridade a um certificado que está sendo criado ou adicionado a um banco de dados. Essa extensão oferece suporte à identificação de um certificado em particular, no meio de múltiplos certificados associados a um nome de sujeito, como o emissor correto de um certificado. A Ferramenta de Banco de Dados de Certificado solicitará que você selecione a extensão de keyID de autoridade. Extensões de restrição são descritas sob Standard X.509 v3 Certificate Extensions no Apêndice A.3 do Guia de Administração do Sistema de Certificados da Red Hat.

-4

Adiciona uma extensão de ponto de distribuição de CRL a um certificado que está sendo criado ou adicionado a um banco de dados. Essa extensão identifica a URL de uma lista de revogação de certificados  (CRL) associados do certificado. A Ferramenta de Banco de Dados de Certificado solicitará que você informe uma URL. Estensões de pontos de distribuição de CRL são descritas sob Standard X.509 v3 Certificate Extensions no Apêndice A.3 do Guia de Administração do Sistema de Certificados da Red Hat.

-5

Adiciona uma extensão de tipo de certificado Netscape a um certificado que está sendo criado ou adicionado ao banco de dados. Extensões de tipo de certificado Netscape são descritas sob Standard X.509 v3 Certificate Extensions no Apêndice A.3 do Guia de Administração do Sistema de Certificados da Red Hat.

-6

Adiciona uma extensão de uso estendido da chave a um certificado que está sendo criado ou adicionado ao banco de dados. Extensões de uso estendido de chave são descritas sob Standard X.509 v3 Certificate Extensions no Apêndice A.3 do Guia de Administração do Sistema de Certificados da Red Hat

-7 emailAddrs

Adiciona uma lista de endereços de email, separados por vírgula, à extensão de nome alternativo do sujeito de um certificado ou requisição de certificado que está sendo criado ou adicionado ao banco de dados. Extensões de nome alternativo do sujeito são descritas na Seção 4.2.1.7 do RFC 32800.

-8 dns-names

Adiciona uma lista de nomes de DNS, separados por vírgula, à extensão de nome alternativo do sujeito de um certificado ou requisição de certificado que está sendo criado ou adicionado ao banco de dados. Extensões de nome alternativo do sujeito são descritas na Seção 4.2.1.7 do RFC 32800

Uso

As capacidades da Ferramenta de Banco de Dados de Certificado estão agrupadas a seguir, usando essa combinações de opções e argumentos. Opções e argumentos entre colchetes são opcionais; aqueles sem colchetes são obrigatórios.

-N [-d certdir ] 
-S -k rsa|dsa -n certname -s subject
[-c issuer |-x] -t trustargs [-h tokenname ]
[-m serial-number ] [-v valid-months ] [-w offset-months ]
[-d certdir ] [-p phone ] [-f password-file ] [-1] [-2] [-3] [-4] 
-R -k rsa|dsa -s subject [-h tokenname ]
[-d certdir ] [-p phone ] [-o output-file ] [-f password-file ] 
-C -c issuer [-f password-file ]
[-h tokenname ] -i cert-request-file -o output-file [-m serial-number ]
[-v valid-months ] [-w offset-months ] [-d certdir ] [-1] [-2] [-3]
[-4] 
-A -n certname -t trustargs [-h tokenname ] [-d certdir ] [-a]
[-i cert-request-file ] 
-L [-n certname ] [-d certdir ] [-r] [-a] 
-V -n certname -b validity-time -u certusage [-e] [-l] [-d certdir ] 
-M -n certname -t trustargs [-d certdir ] 
-H 
  • Criando um novo arquivo cert8.db:
  • Criando um novo certificado e adicionando-o ao banco de dados com um comando:
  • Fazendo uma requisição de certificado separada:
  • Criando um novo certificado binário a partir de uma requisição binária de certificado:
  • Adicionando um certificado a um banco de dados existente:
  • Listando todos certificados ou um certificado determinado:
  • Validando um certificado:
  • Modificando um atributo de confiança do certificado:
  • Exibindo uma lista das opções e argumetnos usados pela Ferramenta de Banco de Dados de Certificado:

Exemplos

Criando um novo Banco de Dados de Certificado

Esse exemplo cria um novo banco de dados de certificado (arquivo cert8.db) no diretório especificado:

certutil -N -d certdir

Você deve gerar os arquivos key3.db e secmod.db associados usando a Ferramenta de Banco de Dados de Chave e outras ferramentas.

Listando Certificados em um Banco de Dados

Esss exemplo lista todos os certificados no arquivo cert8.db no diretório especificado:

certutil -L -d certdir

A Ferramenta de Banco de Dados de Certificado exibe uma saída similar a esta:

Certificate Name              Trust Attributes
Uptime Group Plc. Class 1 CA        C,C,
VeriSign Class 1 Primary CA         ,C,
VeriSign Class 2 Primary CA         C,C,C
AT&T Certificate Services           C,C,
GTE CyberTrust Secure Server CA     C,,
Verisign/RSA Commercial CA          C,C,
AT&T Directory Services             C,C,
BelSign Secure Server CA            C,,
Verisign/RSA Secure Server CA       C,C,
GTE CyberTrust Root CA              C,C,
Uptime Group Plc. Class 4 CA        ,C,
VeriSign Class 3 Primary CA         C,C,C
Canada Post Corporation CA          C,C,
Integrion CA                        C,C,C
IBM World Registry CA               C,C,C
GTIS/PWGSC, Canada Gov. Web CA      C,C,
GTIS/PWGSC, Canada Gov. Secure CA   C,C,C
MCI Mall CA                         C,C,
VeriSign Class 4 Primary CA         C,C,C
KEYWITNESS, Canada CA               C,C,
BelSign Object Publishing CA        ,,C
BBN Certificate Services CA Root 1  C,C,
p    prohibited (explicitly distrusted)
P    Trusted peer
c    Valid CA
T    Trusted CA to issue client certs (implies c)
C    Trusted CA to issue server certs(for ssl only) (implies c)
u    User cert
w    Send warning

Criando uma Requisição de Certificado

Esse exemplo gera um arquivo de requisição binária de certificado chamado e95c.req no diretório especificado:

certutil -R -s "CN=John Smith, O=Netscape, L=Mountain View, ST=California, C=US" -p "650-555-8888" -o meucert.req -d certdir

Antes de criar o arquivo de requisição, a Ferramenta de Banco de Dados solicita uma senha:

Enter Password or Pin for "Communicator Certificate DB": 

Criando um Certificado

Um certificado válido deve ser emitido por uma AC confiável. Se um par de chaves de AC não estiver disponível, você pode criar um certificado auto-assinado (para o propósito deste exemplo) com o argumento -x. Esse exemplo cria um novo certificado de AC binário e auto-assinado chamado meuemissor, no diretório especificado.

certutil -S -s "CN=Meu emissor" -n meuemissor -x -t "C,C,C" -1 -2 -5 -m 1234 -f password-file -d certdir

O exemplo a seguir cria um novo certificado binário chamado meucert.crt, a partir de uma requisição binária de certificado chamada meucert.req, no diretório especificado. Ele é emitido pelo certificado auto-assinado criado assim, meuemissor.

certutil -C -m 2345 -i meucert.req -o meucert.crt -c meuemissor -d certdir

Adicionando um Certificado ao Banco de Dados

Esse exemplo adiciona um certificado ao banco de dados de certificado:

certutil -A -n jsmith@netscape.com -t "p,p,p" -i meucert.crt -d certdir

Você pode ver esse certificado no banco de dados com esse comando:

certutil -L -n jsmith@netscape.com -d certdir

A Ferramenta de Banco de Dados de Certificado exibe uma saída similiar a esta:

Certificate:
  Data:
    Version: 3 (0x2)
    Serial Number: 0 (0x0)
    Signature Algorithm: PKCS #1 MD5 With RSA Encryption
    Issuer: CN=John Smith, O=Netscape, L=Mountain View, ST=California, C=US
    Validity:
        Not Before: Thu Mar 12 00:10:40 1998
        Not After: Sat Sep 12 00:10:40 1998
Subject: CN=John Smith, O=Netscape, L=Mountain View, ST=California, C=US

Subject Public Key Info:
  Public Key Algorithm: PKCS #1 RSA Encryption
  RSA Public Key:
    Modulus:
        00:da:53:23:58:00:91:6a:d1:a2:39:26:2f:06:3a:
        38:eb:d4:c1:54:a3:62:00:b9:f0:7f:d6:00:76:aa:
        18:da:6b:79:71:5b:d9:8a:82:24:07:ed:49:5b:33:
        bf:c5:79:7c:f6:22:a7:18:66:9f:ab:2d:33:03:ec:
        63:eb:9d:0d:02:1b:da:32:ae:6c:d4:40:95:9f:b3:
        44:8b:8e:8e:a3:ae:ad:08:38:4f:2e:53:e9:e1:3f:
        8e:43:7f:51:61:b9:0f:f3:a6:25:1e:0b:93:74:8f:
        c6:13:a3:cd:51:40:84:0e:79:ea:b7:6b:d1:cc:6b:
        78:d0:5d:da:be:2b:57:c2:6f
    Exponent: 65537 (0x10001)
Signature Algorithm: PKCS #1 MD5 With RSA Encryption
Signature:
  44:15:e5:ae:c4:30:2c:cd:60:89:f1:1d:22:ed:5e:5b:10:c8:
  7e:5f:56:8c:b4:00:12:ed:5f:a4:6a:12:c3:0d:01:03:09:f2:
  2f:e7:fd:95:25:47:80:ea:c1:25:5a:33:98:16:52:78:24:80:
  c9:53:11:40:99:f5:bd:b8:e9:35:0e:5d:3e:38:6a:5c:10:d1:
  c6:f9:54:af:28:56:62:f4:2f:b3:9b:50:e1:c3:a2:ba:27:ee:
  07:9f:89:2e:78:5c:6d:46:b6:5e:99:de:e6:9d:eb:d9:ff:b2:
  5f:c6:f6:c6:52:4a:d4:67:be:8d:fc:dd:52:51:8e:a2:d7:15:
  71:3e

Certificate Trust Flags:
  SSL Flags:
    Valid CA
    Trusted CA
  Email Flags:
    Valid CA
    Trusted CA
  Object Signing Flags:
    Valid CA
    Trusted CA

Validando um Certificado

Esse exemplo valida um certificado:

certutil -V -n jsmith@netscape.com -b 9803201212Z -u SR -e -l -d certdir

A Ferramenta de Banco de Dados de Certificado mostra resultdos similares a

Certificate:'jsmith@netscape.com' is valid.

ou

UID=jsmith, E=jsmith@netscape.com, CN=John Smith, O=Netscape Communications Corp., C=US : Expired certificate

ou

UID=jsmith, E=jsmith@netscape.com, CN=John Smith, O=Netscape Communications Corp., C=US : Certificate not approved for this operation

Etiquetas do documento e colaboradores

 Colaboradores desta página: rafaelff
 Última atualização por: rafaelff,