bg-tutorials

Como Gerar o CSR no Red Hat Linux

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

Onde a chave privada é armazenada quando gero um CSR no RHEL?

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.

Devo usar RSA ou ECDSA para a chave?

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.

Minha versão do OpenSSL não suporta -addext. O que eu faço?

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.

Como verifico se o meu CSR está correto antes de fazer o pedido?

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.

Qual parte do CSR devo colar 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.

Isso funciona da mesma forma no AlmaLinux, Rocky Linux e CentOS?

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

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.