0Pricing
Security+ Academy · Aula

Estrutura de certificados X.509

Examine os campos de um certificado digital — assunto, emissor, período de validade, chave pública e extensões — e compreenda o significado de cada um.

Estrutura de certificados X.509 é uma aula grátis de Security+ Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Security+ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Security+ Academy inclui 4 aulas no total.

O que é um certificado X.509?

Um certificado digital X.509 é um documento digital padronizado que vincula uma chave pública a uma identidade. O padrão X.509 (definido na RFC 5280) especifica o formato, os campos e as extensões usados em certificados digitais no mundo todo. Todo certificado TLS/HTTPS, certificado de e-mail S/MIME, certificado de assinatura de código e certificado de autenticação de cliente segue o formato X.509. Compreender a estrutura de um certificado X.509 ajuda você a ler informações de certificados, diagnosticar erros de certificado e tomar decisões conscientes sobre a implantação e a validação de certificados.

# View an X.509 certificate in human-readable form
openssl x509 -in certificate.pem -noout -text

# Or view a website's certificate directly
openssl s_client -connect example.com:443 2>/dev/null | \
  openssl x509 -noout -text

Versão, número de série e algoritmo

Os primeiros campos de um certificado X.509 estabelecem sua identidade básica. Version: X.509 v3 é o padrão atual (a v3 adicionou extensões). Serial Number: um número inteiro exclusivo atribuído pela CA emissora que identifica este certificado específico — usado na CRL (listas de revogação) para revogar certificados individuais. Signature Algorithm: especifica o algoritmo usado pela CA para assinar o certificado (por exemplo, sha256WithRSAEncryption ou ecdsa-with-SHA256). Esse campo aparece duas vezes: uma no TBSCertificate e outra no contêiner externo da assinatura — os dois valores devem corresponder.

# Certificate header fields
# Version: 3 (v3 = supports extensions)
# Serial Number:
#     30:4b:7e:bf:36:e3:46:a8
# Signature Algorithm: sha256WithRSAEncryption

# The serial number is used for revocation:
# CRL lists serial numbers of revoked certificates from this CA

Campos Issuer e Subject

Dois dos campos mais importantes de um certificado estabelecem as partes envolvidas. O campo Issuer identifica a CA que assinou o certificado (por exemplo, CN=DigiCert Global CA G2, O=DigiCert Inc, C=US). O campo Subject identifica a entidade para a qual o certificado foi emitido (por exemplo, CN=*.example.com, O=Example Corp, C=US). Em um certificado TLS, o Common Name (CN) do Subject ou a extensão Subject Alternative Name (SAN) especifica para qual(is) nome(s) de domínio o certificado é válido. Os navegadores comparam o nome do host solicitado com esses campos.

# Extract Issuer and Subject
openssl x509 -in cert.pem -noout -subject -issuer
# subject=CN = *.google.com, O = Google LLC, L = Mountain View, ST = California, C = US
# issuer=CN = GTS CA 1C3, O = Google Trust Services LLC, C = US

# Check Subject Alternative Names (critical for hostname validation)
openssl x509 -in cert.pem -noout -ext subjectAltName
# DNS:*.google.com, DNS:google.com

Período de validade: notBefore e notAfter

O período de validade define quando o certificado está ativo. Ele consiste em dois registros de data e hora: notBefore (o certificado ainda não é válido antes desta data) e notAfter (o certificado está expirado depois desta data). Os clientes TLS verificam se o horário atual está dentro desse intervalo. Certificados apresentados fora do período de validade causam um erro de certificado nos navegadores e precisam ser renovados. A prática recomendada atualmente é emitir certificados de curta duração (90 dias, como faz a Let's Encrypt) para limitar a exposição caso uma chave privada seja comprometida entre a emissão e a expiração.

# Check certificate expiry dates
openssl x509 -in cert.pem -noout -dates
# notBefore=Jan  1 00:00:00 2026 GMT
# notAfter=Mar 31 23:59:59 2026 GMT

# Check how many days until expiry
echo | openssl s_client -connect example.com:443 2>/dev/null | \
  openssl x509 -noout -enddate
# notAfter=Jun 15 12:00:00 2026 GMT

Campo da chave pública

O conteúdo central do certificado é o campo Subject Public Key Info, que contém a chave pública sendo certificada e especifica o algoritmo com o qual ela é usada. Em um certificado RSA, esse campo contém o módulo e o expoente da chave pública RSA, além do tamanho em bits (2048, 4096). Em um certificado ECC, ele contém o nome da curva (por exemplo, prime256v1) e o ponto da chave pública. A CA não gera esse par de chaves — o solicitante do certificado gera seu próprio par de chaves e envia apenas a chave pública em um Certificate Signing Request (CSR).

# Generate a key pair and CSR (Certificate Signing Request)
# First, generate the private key
openssl genrsa -out server.key 2048

# Create a CSR containing the public key and subject info
openssl req -new -key server.key -out server.csr \
  -subj '/CN=www.example.com/O=Example Corp/C=US'

# The CSR is sent to the CA for signing
# The CA returns the signed X.509 certificate
# Private key NEVER leaves your possession

Extensões X.509 v3

O X.509 v3 introduziu extensões que ampliam significativamente os recursos dos certificados. As extensões podem ser críticas (um cliente que não consiga processá-las precisa rejeitar o certificado) ou não críticas (podem ser ignoradas se não forem compreendidas). Entre as extensões importantes estão: Subject Alternative Name (SAN) — nomes de domínio ou endereços IP adicionais abrangidos pelo certificado; Key Usage — restringe as operações para as quais a chave pode ser usada (assinatura digital, cifragem de chaves); Extended Key Usage — restringe ainda mais a finalidade (autenticação de servidor TLS, autenticação de cliente, assinatura de código); e Basic Constraints — indica se o Subject é uma CA.

# View X.509 v3 extensions
openssl x509 -in cert.pem -noout -text | grep -A 20 'X509v3 extensions'
# X509v3 Key Usage: critical
#   Digital Signature, Key Encipherment
# X509v3 Extended Key Usage:
#   TLS Web Server Authentication, TLS Web Client Authentication
# X509v3 Subject Alternative Name:
#   DNS:example.com, DNS:www.example.com
# X509v3 Basic Constraints: critical
#   CA:FALSE

Subject Alternative Name (SAN) versus Common Name

Historicamente, o campo Common Name (CN) no campo Subject distinto era usado para o nome de domínio principal. Os certificados modernos usam Subject Alternative Names (SANs), pois os navegadores descontinuaram a correspondência baseada em CN (RFC 2818) em favor de SANs. Os SANs permitem que um único certificado cubra vários domínios (certificados multi-SAN) ou todos os subdomínios de um domínio (certificados curinga: *.example.com). Os curingas de SAN cobrem apenas um nível — *.example.com cobre www.example.com, mas não sub.www.example.com.

Ponto de distribuição de CRL e extensão OCSP

Duas extensões importantes informam aos clientes como verificar se um certificado foi revogado antes da sua data de expiração. CRL Distribution Points (CDP): contém URLs de onde a Certificate Revocation List da CA pode ser baixada. Authority Information Access (AIA): contém a URL do respondente OCSP (Online Certificate Status Protocol) da CA para a verificação de revogação em tempo real. Os clientes modernos preferem OCSP aos downloads de CRL porque as CRLs podem ser arquivos grandes. A assinatura digital da CA nas respostas OCSP garante que os clientes recebam informações autênticas sobre o status de revogação.

# Check OCSP status of a certificate
openssl ocsp -issuer intermediate_ca.pem \
  -cert server_cert.pem \
  -url http://ocsp.digicert.com \
  -text
# Response shows: good, revoked, or unknown
# server_cert.pem: good
# This Update: Jun 21 00:00:00 2026 GMT

Formatos de certificado: PEM, DER, PFX

Os certificados X.509 usam vários formatos de codificação que você encontrará na prática. PEM (Privacy Enhanced Mail): DER codificado em base64 e envolvido por cabeçalhos -----BEGIN CERTIFICATE-----. Legível por humanos, é usado no Linux/Apache/nginx. DER (Distinguished Encoding Rules): formato binário. É usado em aplicativos Java e em alguns contextos do Windows. PFX/PKCS#12: formato de contêiner que reúne o certificado, sua cadeia e a chave privada em um único arquivo protegido por senha. É usado no Windows IIS e ao exportar certificados com suas chaves privadas. P7B/PKCS#7: contém apenas a cadeia de certificados, sem chave privada, e é usado nos repositórios de certificados do Windows.

# Convert between certificate formats
# PEM to DER
openssl x509 -in cert.pem -outform DER -out cert.der

# DER to PEM
openssl x509 -in cert.der -inform DER -outform PEM -out cert.pem

# Export certificate + private key to PFX (for Windows IIS)
openssl pkcs12 -export -in cert.pem -inkey private.key \
  -certfile chain.pem -out cert.pfx -passout pass:ExportPassword

Certificate Transparency (registros CT)

Certificate Transparency (CT) é uma estrutura que exige que as CAs registrem todos os certificados emitidos em registros públicos auditáveis. Isso permite que qualquer pessoa monitore a emissão de certificados não autorizados para seus domínios. Chrome e Safari exigem a inclusão em registros CT para certificados TLS. SCT (Signed Certificate Timestamp) é a prova da inclusão no registro, incorporada ao certificado ou fornecida por meio de uma extensão TLS. Os registros CT expõem rapidamente emissões incorretas — se uma CA emitir por engano um certificado para seu domínio, você o verá em registros como crt.sh antes que invasores possam explorá-lo.

# Search for all certificates issued for a domain using crt.sh
# This would be done via browser or API:
# https://crt.sh/?q=example.com

# Check CT log inclusion in a certificate
openssl x509 -in cert.pem -noout -text | grep -A 5 'CT Precertificate'
# X509v3 extension: CT Precertificate SCTs (critical)
#   Signed Certificate Timestamp:
#     Version: v1 (0x0)
#     Log ID: A4:B9...

Assinatura da CA no certificado

O último componente de um certificado X.509 é a assinatura digital da CA. A CA calcula o hash de todos os dados do certificado (TBSCertificate) e assina esse hash com sua própria chave privada. É essa assinatura que torna o certificado confiável — qualquer pessoa pode verificá-la usando a chave pública da CA (encontrada no próprio certificado da CA). O algoritmo de assinatura usado (listado no campo de assinatura) precisa corresponder ao especificado anteriormente no certificado. Qualquer modificação feita no certificado após a assinatura invalida a assinatura, garantindo a integridade do certificado.

# Verify that a certificate was signed by a specific CA
openssl verify -CAfile ca_chain.pem server_cert.pem
# server_cert.pem: OK

# If the signature is invalid or the chain is broken:
# server_cert.pem: C = US, O = Example, CN = www.example.com
# error 20 at 0 depth lookup: unable to get local issuer certificate

Verificação rápida

Avalie sua compreensão dos conceitos de CompTIA Security+ (SY0-701) apresentados nesta lição.

Recapitulação da lição

Nesta lição, você aprendeu que um certificado X.509 contém versão, número de série, emissor, Subject, período de validade, chave pública e extensões v3; a extensão SAN controla quais nomes de host o certificado abrange; as extensões CDP e AIA apontam para endpoints de verificação de revogação; e os registros CT fornecem trilhas públicas de auditoria da emissão de certificados. A seguir, exploraremos o ciclo de vida e a revogação de certificados.

Perguntas Frequentes

A aula “Estrutura de certificados X.509” é grátis?

Sim — o texto completo de “Estrutura de certificados X.509” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Security+ Academy, atualize para CoddyKit PRO. O curso de Security+ Academy inclui 4 aulas no total.

O que vou aprender em “Estrutura de certificados X.509”?

Examine os campos de um certificado digital — assunto, emissor, período de validade, chave pública e extensões — e compreenda o significado de cada um. Você pratica Security+ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Security+ Academy?

Nenhuma experiência prévia é necessária. Security+ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Estrutura de certificados X.509”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Security+ Academy?

Sim. Cada aula de Security+ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Autoridades certificadoras e cadeias de confiança
  2. Estrutura de certificados X.509
  3. Ciclo de vida e revogação de certificados
  4. Casos de uso de PKI: HTTPS, S/MIME e assinatura de código
← Voltar para Security+ Academy