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
- 1Cole o certificado, incluindo as linhas
-----BEGIN CERTIFICATE-----e-----END CERTIFICATE-----, ou solte o arquivo na entrada. - 2Leia o resumo: para quem foi emitido, quem o emitiu e se é válido hoje.
- 3Confira os Subject Alternative Names: os navegadores comparam o nome do host com eles, não com o Common Name.
- 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.