Este guia mostra como gerar um CSR (Certificate Signing Request) no Red Hat Enterprise Linux usando a linha de comando do OpenSSL. O processo produz dois arquivos:
- Uma chave privada, que permanece no seu servidor e nunca é compartilhada.
- Um CSR, que você envia à sua Autoridade Certificadora (CA) ao solicitar o certificado.
Ele aborda duas abordagens: um método de comando único para OpenSSL moderno e um método baseado em arquivo de configuração para versões mais antigas do OpenSSL que não suportam extensões inline. Ambas produzem um CSR compatível com SAN, assinado com SHA-256, que é o que as CAs públicas exigem.
Antes de começar: verifique a sua versão do OpenSSL
O OpenSSL vem incluído por padrão em todas as versões suportadas do RHEL. Confirme que ele está presente e verifique a versão, pois ela determina qual método abaixo você pode usar:
openssl version
O que vem incluído em cada versão atual do Red Hat:
- RHEL 10 (lançado em 2025, a versão principal atual): OpenSSL 3.x
- RHEL 9: OpenSSL 3.x
- RHEL 8: OpenSSL 1.1.1
- RHEL 7: OpenSSL 1.0.2 (o RHEL 7 atingiu o fim do suporte de manutenção em 2024; migre essas cargas de trabalho para uma versão suportada assim que possível)
O OpenSSL 1.1.1 e o 3.x suportam a flag de extensão inline usada no método de comando único, então no RHEL 8, 9 e 10 você pode usar a Opção A abaixo. Se openssl version indicar 1.0.2 ou uma versão mais antiga (RHEL 7), use o método com arquivo de configuração na Opção B.
Se, por algum motivo, o OpenSSL estiver ausente, instale-o com o gerenciador de pacotes da sua versão:
# RHEL 8, 9, and 10
sudo dnf install openssl
# RHEL 7
sudo yum install openssl
No RHEL 8 e versões posteriores, o yum é um alias de compatibilidade para o dnf, então qualquer um dos comandos funciona nessas versões.
Opção A: um único comando (OpenSSL 1.1.1 e 3.x)
Este é o caminho mais rápido no RHEL 8, 9 e 10. Ele gera primeiro a chave privada e, em seguida, cria o CSR com os Subject Alternative Names (SANs) adicionados diretamente no comando.
Etapa 1: Gerar a chave privada
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key
Isso cria uma chave privada RSA de 2048 bits chamada example.com.key no diretório atual. O RSA de 2048 bits é o mínimo aceito pelas CAs públicas; para usar, em vez disso, uma chave moderna de curva elíptica, substitua as opções do algoritmo por -algorithm EC -pkeyopt ec_paramgen_curve:P-256. Mantenha este arquivo privado: ele permanece no seu servidor e nunca é enviado à CA.
Etapa 2: Criar o CSR com SANs
Execute o seguinte comando, ajustando os campos de assunto e os nomes de domínio de acordo com os seus:
openssl req -new -sha256 -key example.com.key -out example.com.csr
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=example.com"
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Substitua example.com pelo seu domínio real em todos os lugares e defina os campos de assunto com os seus dados:
- C: código do país com duas letras (por exemplo, US).
- ST: nome completo do estado ou província.
- L: cidade ou localidade.
- O: nome jurídico da organização (para um certificado DV de domínio único, este campo pode ser omitido).
- CN: o nome de domínio totalmente qualificado principal, por exemplo, www.example.com.
Liste todos os nomes de host que o certificado deve cobrir no valor de subjectAltName. Os navegadores modernos validam com base na lista SAN, não no Common Name, então inclua cada nome ali, incluindo o domínio principal. O comando grava o CSR em example.com.csr.
Opção B: método com arquivo de configuração (OpenSSL mais antigo)
Se openssl version indicar uma versão que não suporta a flag -addext (OpenSSL 1.0.2 e mais antigos, como no RHEL 7), defina os SANs em um pequeno arquivo de configuração em vez disso.
Etapa 1: Criar um arquivo de configuração (san.cnf)
Crie um arquivo chamado san.cnf com um editor de texto e cole o seguinte conteúdo, editando os valores conforme o seu domínio e organização:
[ req ]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = req_ext
[ dn ]
C = US
ST = California
L = San Jose
O = Your Company LLC
CN = example.com
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com
Adicione mais nomes de host continuando a numeração: DNS.3, DNS.4 e assim por diante.
Etapa 2: Gerar a chave e o CSR
Gere a chave privada:
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key
Em seguida, crie o CSR usando o arquivo de configuração:
openssl req -new -sha256 -key example.com.key -out example.com.csr -config san.cnf
Verificar o CSR
Antes de enviá-lo, confirme que o CSR contém os detalhes corretos e uma assinatura válida. Este comando exibe o assunto, a lista SAN, o tamanho da chave e verifica a autoassinatura da solicitação:
openssl req -noout -text -verify -in example.com.csr
Verifique se a linha Subject e as entradas de X509v3 Subject Alternative Name listam todos os domínios esperados, se a chave pública tem pelo menos 2048 bits RSA (ou é uma chave de curva elíptica P-256) e se o algoritmo de assinatura é SHA-256. Uma linha informando certificate request self-signature verify OK (versões mais antigas exibem verify OK) significa que o CSR e a chave privada correspondem. Se preferir usar um navegador, cole o CSR no nosso decodificador de CSR online para revisar os mesmos detalhes.
Enviar o CSR
Abra o arquivo example.com.csr em um editor de texto e copie todo o seu conteúdo, incluindo as linhas marcadoras -----BEGIN CERTIFICATE REQUEST----- e -----END CERTIFICATE REQUEST----- (cada marcador usa cinco hífens de cada lado). Cole o bloco inteiro no formulário do pedido ao solicitar o certificado ao seu fornecedor SSL.
Mantenha a chave privada, example.com.key, no servidor. Não a envie para a CA nem a cole em nenhum lugar: ela é a metade secreta do par e nunca deve sair do seu controle. Depois que a CA validar o CSR e emitir o certificado, siga nossas instruções de instalação de SSL no Red Hat Linux para instalá-lo.
Perguntas Frequentes
A chave privada é gravada no arquivo que você nomeou na opção -out (por exemplo, example.com.key) no diretório onde você executou o comando. Ela é criada localmente e nunca é incluída no CSR. Faça um backup dela em um local seguro e restrinja suas permissões, pois você precisará exatamente dessa chave para instalar o certificado emitido pela CA.
Ambos são aceitos. O RSA de 2048 bits é o padrão amplamente compatível e o mínimo permitido pelas CAs públicas. Uma chave de curva elíptica (ECDSA P-256) é menor e mais rápida, oferecendo segurança equivalente; gere uma substituindo as opções de chave por -algorithm EC -pkeyopt ec_paramgen_curve:P-256. De qualquer forma, o CSR deve ser assinado com SHA-256, o que os comandos acima já fazem.
A flag -addext foi adicionada no OpenSSL 1.1.1. Se você estiver em uma versão mais antiga (OpenSSL 1.0.2 no RHEL 7, por exemplo), use o método com arquivo de configuração da Opção B, que define os Subject Alternative Names em um arquivo san.cnf em vez de na linha de comando.
Execute openssl req -noout -text -verify -in example.com.csr no servidor. Ele exibe o assunto, a lista SAN completa, o tipo e o tamanho da chave, e o algoritmo de assinatura, além de confirmar que o CSR corresponde à sua chave privada. Revise esses campos antes de colar o CSR no formulário do pedido.
Cole o bloco inteiro, desde -----BEGIN CERTIFICATE REQUEST----- até -----END CERTIFICATE REQUEST----- inclusive, sem deixar nenhum caractere de fora. Ambas as linhas marcadoras usam cinco hífens de cada lado. Não cole a chave privada.
Sim. AlmaLinux, Rocky Linux e CentOS Stream são compatíveis a nível binário com a versão correspondente do RHEL e incluem o mesmo OpenSSL, então os comandos são idênticos. Também temos um tutorial dedicado sobre como gerar um CSR no CentOS, caso você precise.
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

