Objetivo
Gerar chave privada e CSR via OpenSSL para uso em Apache. Mostramos RSA 2048 (mais comum) e ECC (P-256), além de SAN.
Estrutura sugerida
/etc/ssl/exemplo/ ├─ private/ (permissão 600) ├─ csr/ └─ certs/
RSA 2048 + CSR simples
openssl req -new -newkey rsa:2048 -nodes -keyout /etc/ssl/exemplo/private/exemplo.com.br.key -out /etc/ssl/exemplo/csr/exemplo.com.br.csr -subj "/C=BR/ST=MG/L=Belo Horizonte/O=Exemplo Tecnologia LTDA/OU=TI/CN=exemplo.com.br/emailAddress=admin@exemplo.com.br"
Com SAN (www + raiz)
/etc/ssl/exemplo/openssl-san.cnf -------------------------------- [ req ] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext distinguished_name = dn [ dn ] C = BR ST = MG L = Belo Horizonte O = Exemplo Tecnologia LTDA OU = TI CN = exemplo.com.br emailAddress = admin@exemplo.com.br [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = exemplo.com.br DNS.2 = www.exemplo.com.br
openssl req -new -newkey rsa:2048 -nodes -keyout /etc/ssl/exemplo/private/exemplo.com.br.key -out /etc/ssl/exemplo/csr/exemplo.com.br.csr -config /etc/ssl/exemplo/openssl-san.cnf
ECC (prime256v1)
openssl ecparam -name prime256v1 -genkey -out /etc/ssl/exemplo/private/exemplo.com.br.ec.key openssl req -new -key /etc/ssl/exemplo/private/exemplo.com.br.ec.key -out /etc/ssl/exemplo/csr/exemplo.com.br.ec.csr -config /etc/ssl/exemplo/openssl-san.cnf
Verificar CSR
openssl req -in /etc/ssl/exemplo/csr/exemplo.com.br.csr -noout -text
Boas práticas
chmod 600na KEY; donoroot:root.- Backup seguro da chave privada.