Pack Camo

Decodificador de certificado X.509

Leia o titular, emissor, validade, SANs e impressões digitais de qualquer certificado PEM ou DER.

Tudo roda localmente — nada é enviado para servidor nenhum.

Certificado

2 certificados

…

Veja exatamente o que um certificado diz

Este decodificador lê certificados X.509 — os certificados SSL/TLS de todo site HTTPS, e os usados para autenticação de cliente, assinatura de código e S/MIME — e mostra o conteúdo: titular e emissor, datas de validade e dias até expirar, nomes alternativos do titular, tipo e tamanho da chave pública, todas as extensões e as impressões digitais SHA-1 e SHA-256. Cole um ou mais blocos PEM, Base64 puro, ou solte um arquivo .crt, .cer, .der, .pem ou .p7b. Uma cadeia completa é decodificada certificado por certificado, e cada assinatura é verificada com o seguinte. A análise acontece no seu navegador; nada é enviado.

Como decodificar um certificado

  1. 1Cole o certificado, incluindo as linhas -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----, ou solte o arquivo na entrada.
  2. 2Leia o resumo: para quem foi emitido, quem o emitiu e se é válido hoje.
  3. 3Confira os Subject Alternative Names: os navegadores comparam o nome do host com eles, não com o Common Name.
  4. 4Copie uma impressão digital para comparar com outra cópia, ou exporte tudo como JSON.

O que há em um certificado X.509?

Um certificado vincula uma chave pública a um nome e é assinado por um emissor que garante esse vínculo. O titular é para quem o certificado foi feito e o emissor é quem o assinou, ambos escritos como nomes distintos, como CN=example.com, O=Example Inc., C=US. O período de validade indica o primeiro e o último momento em que o certificado pode ser confiável, e o número de série o identifica de forma única entre tudo o que o emissor assinou — é ele que aparece nas listas de revogação.

Todo o resto fica nas extensões. Desde a versão 3 do formato, seguida por todo certificado em uso hoje, elas carregam a maior parte do significado: quais nomes ele cobre, para que a chave pode ser usada, se pode assinar outros certificados e onde verificar se foi revogado.

As extensões que importam

Subject Alternative Name (SAN)
Os nomes DNS, endereços IP, e-mails e URIs para os quais o certificado é válido. Os navegadores ignoram o Common Name e verificam só esta lista; um curinga como <code>*.example.com</code> cobre um nível de subdomínio.
Key Usage e Extended Key Usage
O que a chave pode fazer: assinar, cifrar chaves, assinar certificados; e com qual finalidade, como autenticação de servidor TLS ou assinatura de código.
Basic Constraints
Se é uma autoridade certificadora (<code>CA:TRUE</code>) que pode assinar outros certificados, e quantos níveis intermediários podem vir abaixo dela (comprimento de caminho).
Authority Information Access e CRL Distribution Points
Onde baixar o certificado do emissor, onde fica seu respondedor OCSP e onde está sua lista de revogação de certificados.
Certificate Policies
Qual nível de validação a CA aplicou: validação de domínio (DV), de organização (OV) ou estendida (EV).
Signed Certificate Timestamps
Prova de que o certificado foi registrado em logs públicos de Certificate Transparency, exigidos pelos navegadores para certificados TLS publicamente confiáveis.

PEM, DER, CRT e CER

DER é a codificação binária de um certificado (ASN.1 Distinguished Encoding Rules). PEM são os mesmos bytes em Base64 entre linhas -----BEGIN CERTIFICATE-----, para poder colar em arquivos de texto e e-mails; vários blocos PEM em um arquivo formam uma cadeia. As extensões .crt e .cer não dizem qual codificação está dentro — as duas são comuns — e este decodificador aceita ambas. Um arquivo .p7b é um pacote PKCS#7 com vários certificados, e também é aberto.

Para converter na linha de comando, openssl x509 -in cert.der -inform der -out cert.pem transforma DER em PEM, e openssl x509 -in cert.pem -noout -text mostra praticamente as mesmas informações desta página.

Cadeias, certificados autoassinados e impressões digitais

Um servidor deve enviar o próprio certificado seguido dos intermediários que levam a uma raiz confiável. Ao colar uma cadeia aqui, a assinatura de cada certificado é verificada com a chave pública do seguinte, então você vê na hora se a ordem está certa e se falta algum elo. Um certificado cujo titular e emissor são iguais, e cuja assinatura é verificada com a própria chave, é autoassinado: ou uma CA raiz ou um certificado feito para testes.

Uma impressão digital é um hash do certificado inteiro. Impressões SHA-256 são o jeito padrão de fixar (pinning) ou comparar certificados; impressões SHA-1 ainda aparecem em ferramentas antigas como o visualizador de certificados do Windows. O hash SPKI SHA-256 cobre só a chave pública e não muda quando o certificado é renovado com a mesma chave. Para criar um par de chaves para um novo certificado, veja o gerador de pares de chaves.

Perguntas frequentes

Como verifico quando um certificado SSL expira?
Cole o certificado e olhe em Validade: a data Não depois de é quando ele expira, e o selo mostra quantos dias faltam. Para obter o certificado de um site, abra-o no visualizador de certificados do navegador e exporte, ou execute openssl s_client -connect example.com:443 -showcerts.
Qual a diferença entre PEM e DER?
Eles guardam o mesmo certificado. DER é binário; PEM é esse binário em Base64 com linhas BEGIN e END. Esta ferramenta lê os dois.
Por que meu navegador diz que o nome não confere?
O nome do host precisa aparecer na extensão Subject Alternative Name. Os navegadores não olham mais o Common Name, então um certificado cujo nome está só no CN é rejeitado.
Posso decodificar uma cadeia de certificados inteira?
Sim. Cole todos os blocos PEM juntos, ou solte um pacote .pem ou .p7b. Cada certificado aparece em ordem, e cada assinatura é verificada com a chave do certificado seguinte.
O que significa autoassinado?
O certificado foi assinado com a própria chave, e não por uma CA separada. Certificados de CA raiz são autoassinados por natureza; em um site, um certificado autoassinado só é confiável onde foi instalado manualmente.
Dá para decodificar uma chave privada ou um CSR?
Não. A ferramenta lê apenas certificados, e avisa se você colar uma chave privada, uma chave pública ou uma solicitação de assinatura de certificado.
É seguro colar meu certificado aqui?
Certificados são públicos — os servidores os enviam a todo visitante — e, de qualquer forma, a decodificação acontece inteiramente no seu navegador. Nunca cole uma chave privada em nenhum site.