Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Capítulo 5: Certificados X.509 no RHEL

Formato Padrão: X.509 é o padrão de certificado usado em todos os lugares no RHEL. Aprenda sua estrutura e como trabalhar com ele em sistemas Red Hat.

5.1 Origens do Padrão

X.509 emergiu do projeto de diretório X.500 (ITU-T, 1988) para definir um certificado de identidade padrão—um documento que vincula uma chave pública a um nome de assunto, assinado por uma autoridade confiável.

5.2 Anatomia do Certificado

CampoPropósito
VersionGeralmente v3 (adiciona extensões)
Serial NumberÚnico por CA
Signature Algorithmex. sha256WithRSAEncryption
IssuerNome Distinguido (DN) da CA
ValidityDatas Not Before e Not After
SubjectDN da entidade (CN, O, C…)
Subject Public Key InfoAlgoritmo + Chave
ExtensionsKey Usage, SAN, CRL DP, etc.
SignatureAssinatura digital da CA

5.3 Extensões Comuns

  • Subject Alternative Name (SAN) — Hosts/IPs vinculados ao cert.
  • Key Usage / Extended Key Usage — Operações permitidas (servidor TLS, assinatura de código…).
  • Basic Constraints — Indica se cert pode assinar outros (CA:TRUE).

5.4 Visualizar um Certificado

openssl x509 -in server.crt -noout -text

Observe que cada seção corresponde à tabela acima.

5.5 Codificações PEM vs DER

  • PEM — Base64 + cabeçalhos -----BEGIN CERTIFICATE----- (mais comum no RHEL).
  • DER — ASN.1 binário, útil para dispositivos embarcados.

5.6 X.509 em Sistemas RHEL

Localizações de Certificados no RHEL

# Localizações padrão de certificados RHEL
/etc/pki/tls/certs/          # Certificados de servidor (públicos)
/etc/pki/tls/private/        # Chaves privadas (modo 600!)
/etc/pki/ca-trust/           # Certificados CA confiáveis
/etc/pki/nssdb/              # Base de dados NSS (Firefox, etc.)

# Localizações específicas de serviço
/etc/httpd/conf/ssl.crt/     # Apache (alternativa)
/etc/nginx/certs/            # NGINX (personalizado)
/var/lib/pgsql/data/         # PostgreSQL
/etc/openldap/certs/         # OpenLDAP

Visualizar Certificados no RHEL

# Ver detalhes completos do certificado
openssl x509 -in /etc/pki/tls/certs/server.crt -noout -text

# Verificações rápidas (foco sysadmin RHEL)
openssl x509 -in server.crt -noout -subject             # Para quem é?
openssl x509 -in server.crt -noout -issuer              # Quem assinou?
openssl x509 -in server.crt -noout -dates               # Quando é válido?
openssl x509 -in server.crt -noout -ext subjectAltName  # SANs (crítico!)

# Verificar se expirou
openssl x509 -in server.crt -noout -checkend 0
# Saída 0 = válido, Saída 1 = expirado

Diferenças de Versão RHEL para X.509

Versão RHELOpenSSLRigor de ValidaçãoMudanças Chave
RHEL 71.0.2kPadrãoSANs recomendados
RHEL 81.1.1kMais rigorosoSANs fortemente recomendados
RHEL 93.5.5Muito rigorosoSANs requeridos, SHA-1 bloqueado
RHEL 103.5.5Muito rigorosoIgual ao RHEL 9

Ponto Chave: Navegadores modernos e RHEL 9+ requerem SANs (Subject Alternative Names)!

Criar Certificados X.509 no RHEL

# Fluxo de trabalho completo no RHEL

# Passo 1: Gerar chave privada
openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048

# Passo 2: Criar CSR (Solicitação de Assinatura de Certificado)
openssl req -new -key server.key -out server.csr \
  -subj "/C=US/ST=State/O=Company/CN=server.example.com" \
  -addext "subjectAltName=DNS:server.example.com,DNS:www.example.com"

# Passo 3: Autoassinado (apenas para testes!)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

# Passo 4: Ver seu certificado X.509
openssl x509 -in server.crt -noout -text

# Passo 5: Instalar no RHEL
sudo cp server.crt /etc/pki/tls/certs/
sudo cp server.key /etc/pki/tls/private/
sudo chmod 600 /etc/pki/tls/private/server.key

Referência Rápida

┌────────────────────────────────────────────────────────────────────┐
│ CERTIFICADOS X.509 NO RHEL                                         │
├────────────────────────────────────────────────────────────────────┤
│ Padrão:       X.509 v3 (com extensões)                             │
│ Codificação:  PEM (Base64, legível por humanos)                    │
│                                                                    │
│ Ver:          openssl x509 -in cert.crt -noout -text               │
│ Assunto:      openssl x509 -in cert.crt -noout -subject            │
│ Expiração:    openssl x509 -in cert.crt -noout -dates              │
│ SANs:         openssl x509 -in cert.crt -noout -ext subjectAltName │
│                                                                    │
│ Localização:  /etc/pki/tls/certs/ (certificados)                   │
│               /etc/pki/tls/private/ (chaves, modo 600!)            │
│                                                                    │
│ Crítico:      SANs são REQUERIDOS no RHEL 9+                       │
│               Assinatura SHA-256+ requerida no RHEL 8+             │
└────────────────────────────────────────────────────────────────────┘

🧪 Laboratório Prático

Lab 04: Certificados X.509

Crie certificados autoassinados, gere CSRs, inspecione certificados e converta formatos

  • 📁 Localização: labs/pt_BR/04-x509-certificates/
  • ⏱️ Tempo: 25-30 minutos
  • 🎯 Nível: Iniciante

Navegação do Capítulo