Certificados digitais e PKI
Um certificado digital é um documento eletrônico que associa uma chave pública a uma identidade. A PKI (Public Key Infrastructure) é o sistema que gerencia a emissão, validação e revogação desses certificados.
Estrutura de um certificado X.509
Versão: 3
Número de série: 0A:BC:12:...
Algoritmo de assinatura: sha256WithRSAEncryption
Emissor (Issuer): CN=Let's Encrypt R3, O=Let's Encrypt
Validade:
Não antes de: 2025-01-01
Não depois de: 2025-04-01
Sujeito (Subject): CN=example.com
Chave pública: RSA 2048 bits
SAN: DNS:example.com, DNS:www.example.com
Assinatura da CA: [bytes]
# Inspecionar um certificado
openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -text
Cadeia de confiança
Nenhum servidor usa a Root CA diretamente. A cadeia é:
Root CA (autoassinada, armazenada no SO/browser)
└── Intermediate CA (assinada pela Root)
└── Certificado do servidor (assinado pela Intermediate)
Essa hierarquia isola a Root CA — ela fica offline. Comprometer a Intermediate não quebra toda a PKI.
Tipos de certificado
| Tipo | Validação | Uso |
|---|---|---|
| DV | Domínio | Sites comuns |
| OV | Organização | Empresas |
| EV | Estendida | Bancos, e-commerce |
| Wildcard | Domínio | *.example.com |
Revogação: CRL e OCSP
Certificados podem ser revogados antes de expirar (chave comprometida, mudança de dono).
CRL (Certificate Revocation List): lista publicada pela CA com seriais revogados. Pesada, atualizada periodicamente.
OCSP (Online Certificate Status Protocol): consulta em tempo real ao servidor da CA.
# Verificar status OCSP de um certificado
openssl ocsp -issuer chain.pem -cert server.pem \
-url http://ocsp.example.com -resp_text
OCSP Stapling: o servidor faz a consulta OCSP e inclui a resposta assinada no handshake TLS, evitando que o cliente consulte a CA diretamente (mais rápido e preserva privacidade).
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 valid=60s;
Certificate Transparency (CT)
Logs públicos e auditáveis onde todas as emissões de certificados são registradas. Navegadores modernos exigem SCTs (Signed Certificate Timestamps) no certificado para aceitá-lo.
Permite detectar emissões fraudulentas rapidamente.