Parser de Certificados
Certificados X.509 sao o formato padrao para certificados de chave publica usados em TLS/SSL. Esta ferramenta analisa certificados codificados em PEM para exibir o sujeito, emissor, periodo de validade, detalhes da chave publica e extensoes. Essencial para depurar problemas de conexao HTTPS.
Especificacoes
Casos de Uso Comuns
- Depurar erros de conexao SSL/TLS ("certificado expirado")
- Verificar se o certificado cobre os nomes de dominio corretos
- Verificar datas de expiracao do certificado para planejamento de renovacao
- Inspecionar certificados intermediarios e raiz em uma cadeia
- Verificar se os atributos do certificado atendem aos requisitos de conformidade
Funcionalidades
- Analisar certificados codificados em PEM (-----BEGIN CERTIFICATE-----)
- Exibir nomes distintos do sujeito e emissor
- Mostrar periodo de validade (Nao Antes / Nao Depois)
- Extrair algoritmo e tamanho da chave publica
- Exibir Nomes Alternativos do Sujeito (SANs)
- Mostrar extensoes do certificado (Key Usage, Extended Key Usage, Basic Constraints)
- Exibicao de Authority/Subject Key Identifier
- URLs de CRL Distribution Points e Authority Information Access
Exemplos
Certificado Autoassinado
Experimente →Um certificado X.509 para example.com com Subject Alternative Names.
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIBAgIUb7VAvx3CADEDexgoNd41E9Y5tZowDQYJKoZIhvcNAQEL
BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xFDASBgNVBAoMC0V4YW1wbGUgSW5jMRQwEgYDVQQLDAtF
bmdpbmVlcmluZzEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjYwMTI1MDQ0ODMw
WhcNMjcwMTI1MDQ0ODMwWjB8MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZv
cm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEUMBIGA1UECgwLRXhhbXBsZSBJ
bmMxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRQwEgYDVQQDDAtleGFtcGxlLmNvbTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKN/rhprC1rfrwKpj9ZqwRR
4c51daZRMlij1NbmUJn7KiZTghxu1OtOEodGmpcF3xuWxiBYTOKvQZ+qPpED6IAG
IYtANPetAkRbsf/xdZZZ/BRR3jQQ2AVDfyuBSYjYEV4JMVG47JCj7oewgNb0dejv
HI18aBWzIGE6v9Zv5FDt+d3GjJignI8elrGzrnJg85qsd743xSEPALqf1NsyhjtY
Th91DazAOoPzA/DMXzoXUhAf9C5uWQlSdn6JDzs8/ld0c+LZH9ohvC/IN/PfdkYg
NYR2AJutUdxbOPPmcFm46o/WpquV2H0mIMuvdzI+k/tk6wVV2jwu2ysQLwweqecC
AwEAAaOBjjCBizAdBgNVHQ4EFgQU9Th/a8eJZ9DHh5uUGyf+iTSNF14wHwYDVR0j
BBgwFoAU9Th/a8eJZ9DHh5uUGyf+iTSNF14wDwYDVR0TAQH/BAUwAwEB/zA4BgNV
HREEMTAvggtleGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUuY29tgg9hcGkuZXhhbXBs
ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAE1rGDKmhMBkcdwZva/9CouLeLOIHBiI
uPH1LV6Pbl2KJ11w1L36SstF17+M3Sn0SJxstCePJWlfLlx6r5JZSyNAQghmgep1
/YWrsDtC3bjs4stOz1FWUgUDs+b7pf+h93lLTShX8mue2rjIXbYJPJx9XsCmyx1R
zLuYSoOSQ/0aR7NSzjqgoHEUNI/2mGTRJ6ngC0vx88ppn+tuk8PyAXt8kp8hPx3I
6lmmyzfuwt0JZIawW2p1nkMlGt2IBIxBBY7vjAHCTDRa69YP08QeImDM13FelUVh
tXPOCJaWXZQmppgKNtmpedswRRtOyl83cqzkz4rZRpjnpPqIEWNQ9bs=
-----END CERTIFICATE-----Chave Privada
Experimente →Uma chave privada RSA correspondente no formato PKCS#8.
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyjf64aawta368
CqY/WasEUeHOdXWmUTJYo9TW5lCZ+yomU4IcbtTrThKHRpqXBd8blsYgWEzir0Gf
qj6RA+iABiGLQDT3rQJEW7H/8XWWWfwUUd40ENgFQ38rgUmI2BFeCTFRuOyQo+6H
sIDW9HXo7xyNfGgVsyBhOr/Wb+RQ7fndxoyYoJyPHpaxs65yYPOarHe+N8UhDwC6
n9TbMoY7WE4fdQ2swDqD8wPwzF86F1IQH/QublkJUnZ+iQ87PP5XdHPi2R/aIbwv
yDfz33ZGIDWEdgCbrVHcWzjz5nBZuOqP1qarldh9JiDLr3cyPpP7ZOsFVdo8Ltsr
EC8MHqnnAgMBAAECggEAANyt1b1JqlASJPcQMmiABBDsVcJvacW+lOFfNHv/XtIk
AMD3QdfiVnh8BZ2SC+Sbw4nvNVZeMkH4v4j84FcnSjO9YB5Ub+9GSyCXzWdT0zQA
AyeAbe2FSkRqWsI3CETl+iqlMekCPpIfPRYQqSw1w+tTm5APZWHSzpiQA7ydwSsP
sJ1QBq64eXSXFhpyLG0LE4ATeyH9dxj9n9NocL0QOqT+Tl5Dcjlxc7fYmoHStC0q
9Xb5h1Po3kmESAELdUobBbJvJFVK98PMB6osUR4VM4snQJOJZ+4Df7bxU311OgLB
Am/mQjsnyZqBWjDQaUj/BGnapJxqB+a102Ki3XMX4QKBgQDcmUc0c+zfRfnic22Q
ytJ3Y29N1C52GESFulL+cYfwwfVK/VXWT1b/eECABVWZvzP22wyEnkodkYWSoN86
GK2PvH8ii9EpkkCtRabFqmbfqPysTKawu9/BgrVAvEvRQjHHAUZnytwtw+IcL6Nz
EjQ4UrFK+3/rycT05I/ToHRgGQKBgQDPNXI0OSJ1nl7YQOry4C4ekT/uCJAbV7bN
MU49iSMqldlXy+VvSKAwErzvaAtQUolvu3DPw2hcpMxuH+hoHweTA0lu0VbZRKvS
1EhMWQGN2qrSQYcnhvKY/BUbd7KjZ858PeOBcTgyCfBkfdBNgughjsCv2BxKGxQI
Li2gSWSZ/wKBgF0M2pgpffUAE1ON1N2KcBSkAMMXiTGPMvgli/R/9xN6/PjQu3BW
rx+7nZlipqTfng+2fiVCj4jBZVJgQUjEOBG1NPthdqzOYDG2e45NPm+BXHNhMb7C
wLNjawkPY/u0rEKBKy2EyDMVuT6iaZOUTiqj1t0GEQNobIfQEUr3F5+hAoGAZuD3
afxwIovWNXLN9HbgDyc44Zt4yUqcpXZ0jVL4ld0+wzumF8GsXxH+orM64s+IE2Sy
V0WDHHRqV8cZ4hB99z0riY0AnPFeilgB6X5Lqj3GkIweab6z1sdaR3//vuf8em1T
9uHa7+VFaO+aq9FyJa819ljLevPE12buGmY2P8sCgYEAoSk3KwiEO9zvxuuwqdBh
Qv/dvWPgh/KttWcoL6Axt1z4gG+vdidn8xIdVGy6xnQOYpm+ANqRpWO82Hws5ITy
8uDn/S2kjQnyh8Cz7jJLBiJUxz/ZWfUz56cQq3Bej46oJN6UKkhJ9ogAjUJAYjV1
7JIWxv6OC7Cg6xfHCGRa7F0=
-----END PRIVATE KEY-----Dicas
- Exporte um certificado do navegador: clique no cadeado > Certificado > Detalhes > Exportar.
- Obtenha o certificado de um site com: openssl s_client -connect example.com:443
- SANs (Subject Alternative Names) listam todos os nomes de dominio validos.
- Certificados raiz sao autoassinados (emissor = sujeito).
- Verifique a cadeia de certificados com: openssl verify -CAfile ca.pem cert.pem
Entendendo Parser de Certificados
Certificados X.509 sao a base da confianca na internet, habilitando criptografia TLS/SSL para conexoes HTTPS, assinatura de codigo, seguranca de email (S/MIME) e autenticacao VPN. Um certificado vincula uma chave publica a uma identidade (nome de dominio, organizacao ou individuo), e uma Autoridade Certificadora (CA) atesta esse vinculo assinando digitalmente o certificado.
Certificados sao tipicamente armazenados no formato PEM — dados DER codificados em Base64 delimitados entre marcadores -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----. Um certificado contem o sujeito (quem o certificado identifica), o emissor (quem o assinou), um periodo de validade (datas Nao Antes e Nao Depois), a chave publica do sujeito e extensoes que controlam o uso. A extensao Subject Alternative Name (SAN) lista todos os nomes de dominio que o certificado cobre.
Cadeias de certificados estabelecem confianca vinculando um certificado de entidade final a uma CA raiz confiavel atraves de uma ou mais CAs intermediarias. Quando um navegador se conecta a um site, ele verifica a cadeia: o certificado do servidor foi assinado por uma CA intermediaria, que foi assinada por uma CA raiz que o navegador confia. Uma cadeia quebrada — intermediarios ausentes ou uma raiz desconhecida — causa o familiar erro "Sua conexao nao e privada".
O gerenciamento de certificados e uma fonte comum de indisponibilidades. Certificados expirados causam interrupcao imediata do servico. Nomes de dominio incompativeis acionam avisos do navegador. Certificados intermediarios ausentes funcionam em alguns navegadores (que podem armazena-los em cache ou busca-los) mas falham em outros e em clientes de API. Monitorar a expiracao de certificados e automatizar a renovacao com ferramentas como Let's Encrypt e certbot e essencial para operacoes confiaveis.
Para verificar quando um certificado expira, cole o conteudo PEM nesta ferramenta e veja a data Nao Depois. Na linha de comando, execute openssl x509 -enddate -noout -in cert.pem para um arquivo local, ou openssl s_client -connect example.com:443 encaminhado para openssl x509 -noout -enddate para um servidor remoto. Monitoramento automatizado atraves de certbot, cert-manager ou servicos de monitoramento dedicados pode alertar bem antes da expiracao para prevenir indisponibilidades.
Certificados raiz sao autoassinados (o emissor e igual ao sujeito) e vem pre-instalados em navegadores e sistemas operacionais como ancoras de confianca. Certificados intermediarios sao assinados por uma CA raiz e sao usados para assinar certificados de entidade final. Esta cadeia de confianca protege a chave raiz — se um intermediario e comprometido, apenas aquele intermediario e revogado em vez da raiz. Servidores devem enviar a cadeia completa (entidade final mais todos os intermediarios) mas nao devem incluir o certificado raiz em si.
Subject Alternative Names (SANs) listam todos os nomes de dominio e enderecos IP para os quais um certificado e valido. Um unico certificado pode proteger multiplos dominios como example.com, www.example.com e api.example.com usando SANs. Navegadores modernos usam SANs em vez do campo Common Name (CN) para validacao de dominio. Certificados wildcard (*.example.com) cobrem um nivel de subdominios, mas nao o dominio apex em si.
Um certificado que funciona em navegadores mas falha em clientes de API e um problema comum causado por cadeias de certificados incompletas. Navegadores sao mais tolerantes — alguns buscam intermediarios ausentes automaticamente atraves de busca AIA (Authority Information Access) ou usam intermediarios previamente em cache. Clientes de API como curl, Node.js e a biblioteca requests do Python tipicamente requerem que a cadeia completa seja enviada pelo servidor. Certifique-se de que seu servidor esta configurado para enviar o certificado de entidade final mais todos os certificados intermediarios, e teste com curl -v ou openssl s_client para verificar se a cadeia esta completa.