Como decodificar um certificado
- Cole o certificado na caixa, incluindo as linhas
-----BEGIN CERTIFICATE-----e-----END CERTIFICATE-----. DER bruto em Base64 sem essas linhas e um dump hex que começa com30 82também são aceitos. - Ou arraste um arquivo
.pem,.crt,.cer,.der,.p7bou.crlpara a caixa. Arquivos DER binários funcionam; não é preciso convertê-los antes. - Leia o cartão. Cada objeto da entrada ganha um, então um
fullchain.pemcom três certificados mostra três cartões. - Abra Estrutura ASN.1 abaixo de um cartão quando precisar da árvore bruta, por exemplo para achar uma extensão que o resumo lista em Outras extensões.
O botão Exemplo carrega um certificado de demonstração se você só quiser ver o layout.
O que o decodificador mostra
| Campo | O que observar |
|---|---|
| Titular, Emissor | Para quem é o certificado e quem o assinou. Valores idênticos recebem a marca de autoassinado. |
| Válido a partir de / Válido até | Dias restantes, mais um aviso quando o certificado está expirado, ainda não é válido ou faltam menos de 30 dias para expirar. |
| Nomes alternativos (SAN) | Os hostnames e IPs para os quais o certificado vale. Navegadores comparam o hostname com esta lista e ignoram o CN. |
| Chave pública, Algoritmo de assinatura | Por exemplo EC P-256 com ecdsa-with-SHA256, ou RSA com o tamanho em bits. |
| Uso da chave, Uso estendido da chave | Um certificado de servidor TLS precisa de serverAuth no EKU. |
| Restrições básicas | CA:TRUE marca um intermediário ou uma raiz. |
| ID da chave do titular, ID da chave da autoridade | O AKI de um certificado é igual ao SKI do certificado que o emitiu, e é assim que se coloca uma cadeia em ordem. |
| Pontos de distribuição de CRL, OCSP, Emissores da CA | Mostrados como texto simples. A página não os busca. |
| Fingerprints SHA-1 e SHA-256 | Hashes do DER inteiro, os valores que gerenciadores de certificados e configurações de pinning comparam. |
| Pin SPKI SHA-256 | SHA-256 em Base64 só da chave pública. Ele não muda quando um certificado é renovado com a mesma chave. |
Cadeias, pacotes e arquivos mistos
Servidores geralmente enviam uma cadeia: primeiro o certificado folha, depois um ou mais intermediários. Cole o fullchain.pem inteiro e percorra os cartões: o emissor do cartão 1 deve ser o titular do cartão 2, e os valores AKI/SKI devem se encaixar do mesmo jeito. Ordem errada ou um intermediário ausente é a causa habitual de erros “unable to get local issuer certificate” em clientes que não buscam intermediários sozinhos.
Um pacote PKCS#7 (-----BEGIN PKCS7-----, muitas vezes um .p7b do Windows ou do portal de uma CA) também é aberto, e cada certificado dentro dele ganha um cartão próprio. Você também pode misturar tipos de objeto em uma mesma colagem: um certificado, o CSR e a chave privada dele. Se as três linhas Pin SPKI SHA-256 forem idênticas, a chave, a solicitação e o certificado pertencem ao mesmo par de chaves.
Como reconhecer dados de certificado pelos primeiros caracteres
Sem as linhas de cabeçalho, um certificado é só Base64 de DER, e o DER sempre começa com um byte SEQUENCE 0x30. Isso gera alguns prefixos que vale a pena conhecer:
| Começa com | Geralmente |
|---|---|
MIIB | DER de 260–515 bytes, como um certificado EC pequeno (o exemplo abaixo tem 443 bytes) |
MIIC | DER de 516–771 bytes |
MIID, MIIE, MIIF | DER de 772–1.539 bytes, o tamanho típico de um certificado RSA-2048 |
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE | Uma chave pública EC P-256 (SPKI) |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A | Uma chave pública RSA-2048 (SPKI) |
O quarto caractere vem dos bytes de comprimento, e é por isso que muda com o tamanho. Mais padrões estão reunidos em prefixos Base64 comuns.
Como decodificar um certificado com OpenSSL
Os mesmos campos pela linha de comando:
openssl x509 -in cert.pem -noout -text
openssl x509 -in cert.pem -noout -subject -issuer -dates -ext subjectAltName
openssl x509 -in cert.pem -noout -fingerprint -sha256
openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl base64
A última linha imprime o pin SPKI, e ele bate com o pin mostrado aqui. Para pegar a cadeia que um servidor em produção envia, rode openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null e cole a saída: o decodificador separa os blocos PEM do texto em volta. Mais comandos de uma linha na página de Base64 com OpenSSL.
Problemas comuns
- “Foi encontrada uma linha —–BEGIN, mas nenhuma linha —–END correspondente”: a cópia foi cortada. Copie de novo ou arraste o arquivo.
- “Não é PEM nem DER válido em Base64”: a entrada não é nenhum dos dois. Causas típicas são um arquivo binário aberto em um editor de texto e colado, ou um Base64 que perdeu caracteres ao passar por um chat ou cliente de e-mail.
- “Esta é uma chave pública SSH, não PEM”: linhas
ssh-ed25519 AAAA…vão para a ferramenta de fingerprint de chaves SSH. O mesmo vale para-----BEGIN OPENSSH PRIVATE KEY-----. - Os fingerprints mostram “Requer uma página segura (https)”: os hashes usam a API WebCrypto do navegador, que só roda em https ou localhost. Abra a página por https.
- Um arquivo
.pfxou.p12: o conteúdo PKCS#12 é criptografado com a senha de exportação, então só a estrutura externa pode ser mostrada. Extraia o certificado antes comopenssl pkcs12 -in file.pfx -nokeys -out cert.pem.
Perguntas frequentes
Como verificar quando um certificado SSL expira?
Cole o certificado acima e leia Válido até: o decodificador mostra quantos dias faltam e avisa quando restam menos de 30 ou quando a data já passou. No shell, openssl x509 -in cert.pem -noout -enddate imprime a mesma data.
Qual a diferença entre arquivos .pem, .crt e .cer?
A extensão é só uma convenção. Um arquivo .pem é sempre texto Base64 com linhas -----BEGIN, enquanto .crt e .cer podem ser esse texto ou DER binário. Arraste o arquivo para cá e o decodificador lê os dois.
Esta ferramenta verifica a cadeia de certificados ou a revogação?
Não. Ela lê todos os campos, mas não confere assinaturas, cadeias nem o status OCSP/CRL, porque a página não consegue se conectar a outros servidores. Use openssl verify -CAfile chain.pem cert.pem para verificar a cadeia.
Posso colar uma chave privada junto com o certificado?
Pode, e é o jeito mais rápido de saber se os dois combinam: valores de Pin SPKI SHA-256 iguais indicam o mesmo par de chaves. Da chave privada, a ferramenta mostra só o tipo e o tamanho, e os valores secretos na árvore ASN.1 ficam ocultos.