O Que e X.509?

X.509 e o padrão do ITU-T para certificados de chave publica - usado em TLS/SSL (HTTPS), S/MIME (e-mail assinado), code signing, EAP-TLS (Wi-Fi corporativo), client authentication, ICP-Brasil e dezenas de outros cenários. Um certificado X.509 associa uma chave publica a uma identidade (domínio, CPF, organização) através da assinatura de uma Autoridade Certificadora (CA) em quem você já confia.

A estrutura interna e ASN.1 codificada em DER - um formato binário hierarquico. PEM e apenas DER em Base64 com cabecalhos -----BEGIN CERTIFICATE----- para ser texto-amigavel. Os campos principais de um X.509 v3:

Campos Principais

  • Subject - identidade do dono do certificado (CN, O, OU, C, etc.)
  • Issuer - identidade da CA que assinou
  • Serial Number - identificador único atribuído pela CA (importante para revogação)
  • Validity - notBefore / notAfter
  • Signature Algorithm - algoritmo usado pela CA (ex: sha256WithRSAEncryption)
  • Subject Public Key Info - a chave publica e seu algoritmo (RSA-2048, P-256, Ed25519, etc.)

Extensões Importantes (X.509 v3)

  • Subject Alternative Name (SAN) - DNS names, IPs, URIs, e-mails para os quais o cert e valido. Desde 2017, navegadores só olham SAN, não CN.
  • Basic Constraints - CA:TRUE/FALSE e pathLenConstraint. Diz se o cert pode emitir outros certs.
  • Key Usage - finalidades da chave: digitalSignature, keyEncipherment, keyCertSign, etc.
  • Extended Key Usage - finalidades específicas: serverAuth (TLS server), clientAuth (mTLS), codeSigning, etc.
  • Subject Key Identifier (SKI) - hash da chave publica, usado para encadeamento.
  • Authority Key Identifier (AKI) - SKI da CA que assinou. Liga este cert ao cert da CA.
  • Authority Information Access (AIA) - URL para baixar o cert da CA (caIssuers) e URL do responder OCSP.
  • CRL Distribution Points (CDP) - URLs onde baixar listas de revogação.
  • Certificate Transparency (SCT) - timestamps assinados de logs CT. Obrigatório em certs públicos modernos.

Checks de Lint que o Parser Aplica

  • Expirado ou perto de expirar - alerta com 90/60/30/0 dias restantes
  • Algoritmo de assinatura fraco - SHA-1 e MD5 são rejeitados em TLS público ha anos
  • Chave RSA < 2048 bits - inseguro pelos padrões atuais (NIST recomenda ≥2048)
  • SAN ausente - cert TLS público precisa de SAN, não basta CN
  • End-entity com CA:TRUE - falha grave, equivale a permitir emissao arbitrária
  • Validade > 398 dias - desde set/2020 navegadores rejeitam TLS público com validade maior
  • Sem extendedKeyUsage para serverAuth - cert que claramente e de servidor mas não declara o EKU

Perguntas Frequentes

O que e um certificado X.509?

X.509 e o padrão de certificado digital usado em TLS, S/MIME e code signing. Associa uma chave publica a uma identidade através da assinatura de uma CA.

PEM vs DER, qual usar?

DER e binário, PEM e DER em Base64 com cabecalhos. Para configurar Apache/Nginx/HAProxy o padrão e PEM. Para clientes Windows/Java geralmente DER. Esta ferramenta aceita ambos.

O que e SAN?

SAN lista todos os hostnames/IPs/URIs para os quais o certificado e valido. Desde 2017 navegadores só olham SAN - CN do subject e ignorado.

O que e BasicConstraints CA:TRUE?

CA:TRUE indica que o certificado pode assinar outros certificados (CA intermediária ou raiz). End-entity sempre deve ter CA:FALSE.

Por que algumas extensões aparecem como não reconhecidas?

X.509 e extensivel - vários OIDs são específicos de uma CA, de Certificate Transparency, EV ou ICP-Brasil. Cobrimos as mais relevantes; outros são mostrados por OID numerico.

Os certificados são enviados a algum servidor?

Não. Tudo roda no navegador via JavaScript e WebCrypto. Nada sai do seu cliente - você pode analisar certificados privados com segurança.

Sua empresa precisa de governança de certificados?

PKI, gestão de certificados e mTLS sob medida

Implementamos PKI corporativa (CA própria), inventário e renovação automática de certs públicos, mTLS para APIs internas e validação de cadeia em ambientes complexos.

Solicitar Proposta