bg-tutorials

Como Gerar um CSR no Debian

Este guia mostra como gerar um CSR (Certificate Signing Request) no Debian usando a linha de comando OpenSSL. Você executa um único comando via SSH que cria dois arquivos de uma só vez: uma chave privada que permanece no seu servidor, e o CSR que você envia para sua Autoridade Certificadora (CA). Os passos funcionam no Debian 13 (trixie), Debian 12 (bookworm) e versões anteriores, já que o OpenSSL vem incluído no sistema base.

Um CSR é um pequeno bloco de texto que contém os detalhes do seu domínio e uma chave pública. A CA o lê, valida sua solicitação e emite um certificado que corresponde à chave privada criada junto com ele. A chave privada nunca sai do seu servidor, então mantenha-a segura: se você a perder, o certificado emitido se torna inutilizável e você terá que começar novamente.

Etapa 1: Faça login no seu servidor Debian

Abra um terminal e conecte-se ao servidor via SSH. Substitua your-user pelo nome da sua conta e your-server-ip pelo endereço IP ou nome de host do servidor:

ssh your-user@your-server-ip

O OpenSSL já está incluído no sistema base do Debian, portanto não há nada extra para instalar. Para confirmar que está disponível, verifique a versão:

openssl version

Etapa 2: Gere a chave privada e o CSR

Execute o comando abaixo. Ele cria a chave privada e o CSR em uma única etapa e inclui os Subject Alternative Names (SANs) que os navegadores e CAs modernos exigem. Execute-o a partir de um diretório no qual você tenha permissão de escrita, como seu diretório home:

openssl req -new -newkey rsa:2048 -nodes 
-keyout mywebsite.key 
-out mywebsite.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com" 
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"

Veja o que cada parte faz:

  • req -new cria uma nova solicitação de assinatura de certificado.
  • -newkey rsa:2048 gera uma nova chave privada RSA de 2048 bits. 2048 bits é o mínimo atual para certificados públicos; você pode usar rsa:4096 para uma chave maior.
  • -nodes mantém a chave privada sem criptografia (sem senha), para que o servidor web possa iniciar sem solicitar uma senha.
  • -keyout mywebsite.key grava a chave privada. Mantenha este arquivo privado e nunca o envie para ninguém.
  • -out mywebsite.csr grava o CSR que você envia para a CA.
  • -subj preenche os campos do assunto diretamente na linha de comando, de modo que o comando seja executado sem solicitações interativas. Defina CN (Common Name) como o nome de domínio totalmente qualificado.
  • -addext “subjectAltName=…” adiciona as entradas SAN. As CAs emitem com base na lista SAN, portanto inclua todos os nomes de host que o certificado deve cobrir.

Substitua mywebsite.com pelo seu domínio real e edite os valores de -subj para corresponder à sua organização. O código de país de duas letras (C) deve estar em maiúsculas, por exemplo US ou GB. Para um certificado com validação de domínio (DV), os campos da organização não são verificados, mas o comando ainda precisa de valores válidos.

Se preferir preencher os campos de forma interativa em vez de usar -subj, remova essa linha e o OpenSSL solicitará cada valor:

openssl req -new -newkey rsa:2048 -nodes 
-keyout mywebsite.key 
-out mywebsite.csr 
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"

Quando solicitado, deixe a challenge password e o optional company name em branco pressionando Enter. As CAs ignoram esses campos, e uma challenge password pode causar problemas mais tarde.

Adicionando mais domínios ou um curinga

Adicione mais nomes de host à lista SAN, separados por vírgulas. Por exemplo, para incluir um subdomínio de API:

-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com,DNS:api.mywebsite.com"

Para um certificado curinga (wildcard), use *.mywebsite.com. Um curinga cobre um nível de subdomínios, mas não o domínio nu, então liste ambos se quiser que o domínio principal também seja coberto:

-addext "subjectAltName=DNS:*.mywebsite.com,DNS:mywebsite.com"

Prefere uma chave ECDSA?

As chaves ECDSA são menores e mais rápidas que as RSA no mesmo nível de segurança e são amplamente suportadas. Para gerar uma chave e um CSR P-256 (prime256v1), troque o argumento -newkey:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout mywebsite.key 
-out mywebsite.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com" 
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"

O OpenSSL moderno assina o CSR com SHA-256 por padrão, que é o que as CAs exigem. Não é necessário adicionar uma flag de digest separada.

Etapa 3: Verifique o CSR

Antes de enviar a solicitação, confirme que ela contém o domínio e os SANs corretos e que sua assinatura é válida. Este comando exibe o conteúdo decodificado e verifica a assinatura localmente:

openssl req -noout -text -verify -in mywebsite.csr

Procure por verify OK na saída, verifique se a linha Subject mostra seu Common Name e confirme se a seção X509v3 Subject Alternative Name lista todos os nomes de host esperados. Se um SAN estiver faltando, gere novamente o CSR com o valor correto de -addext. Você também pode colar o CSR em nosso decodificador de CSR online para verificar esses campos em um navegador.

Etapa 4: Envie o CSR

Abra o arquivo do CSR e copie todo o seu conteúdo, incluindo as linhas BEGIN e END:

cat mywebsite.csr

O bloco tem esta aparência. Copie tudo desde a primeira até a última linha, incluindo os cinco hífens de cada lado dos marcadores BEGIN e END:

-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----

Cole esse bloco no seu formulário de pedido de SSL. Depois que a CA validar o CSR e emitir o certificado SSL, siga as instruções de instalação de SSL no Debian para implantá-lo. Mantenha o arquivo mywebsite.key no servidor: você precisa dele junto com o certificado emitido para habilitar o HTTPS, e nunca deve enviá-lo para a CA ou qualquer outra pessoa.

Se preferir não usar a linha de comando, você pode criar a solicitação com nosso Gerador de CSR e colar o resultado no seu pedido.

Gere um CSR em outras plataformas

Está usando uma distribuição Linux ou servidor diferente? Veja nossos outros guias de CSR:

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.