bg-tutorials

Como Gerar um CSR no Ubuntu

Este tutorial mostra como gerar uma CSR no Ubuntu, especificamente num servidor Apache baseado em Ubuntu acedido via SSH. O Ubuntu utiliza o OpenSSL para isso, portanto executa duas coisas num único comando: uma nova chave privada e a CSR (Certificate Signing Request) correspondente. Pode indicar os detalhes do assunto como flags, o que mantém todo o processo numa única linha, pronta a copiar e colar.

Os passos abaixo funcionam em todas as versões suportadas do Ubuntu (22.04, 24.04 e 26.04 LTS), uma vez que cada uma inclui o OpenSSL 3.x. Também funcionam em versões mais antigas, como a 20.04, que incluía o OpenSSL 1.1.1, embora a 20.04 já tenha atingido o fim do seu suporte padrão. O OpenSSL moderno assina o pedido com SHA-256 por padrão, portanto não é necessário adicionar uma flag de digest.

Passo 1: Aceda ao seu servidor Ubuntu

Ligue-se ao servidor via SSH a partir do seu computador local (Terminal no macOS ou Linux, PowerShell ou Windows Terminal no Windows). Substitua o nome de utilizador e o host pelos seus:

ssh your-user@your-ubuntu-server

Gere a CSR no mesmo servidor que irá alojar o certificado. A chave privada é criada juntamente com a CSR e deve permanecer nesse servidor, pelo que executar estes comandos localmente e depois copiar a chave para outro lado anula o propósito.

Passo 2: Gere a chave privada e a CSR

Execute o seguinte comando. Ele cria uma chave RSA de 2048 bits e uma CSR num único passo, com o assunto e os Subject Alternative Names (SANs) fornecidos diretamente na linha, para que o OpenSSL não pare para fazer perguntas:

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

O que faz cada parte:

  • -newkey rsa:2048 gera uma nova chave RSA de 2048 bits. 2048 bits é o mínimo atual para certificados públicos; pode utilizar rsa:4096 para uma chave maior, ou optar por ECDSA (ver abaixo).
  • -nodes deixa a chave privada não encriptada, para que o Apache a possa ler no arranque sem pedir uma frase-passe.
  • -keyout e -out definem os nomes dos ficheiros da chave privada e da CSR.
  • -subj fornece o assunto do certificado. Coloque aqui o nome real da sua empresa, o estado e a cidade, e não os valores de exemplo. CN (Common Name) é o seu domínio principal.
  • -addext “subjectAltName=…” lista todos os nomes de anfitrião que o certificado deve cobrir. As CAs públicas validam com base na lista de SANs, por isso inclua também aqui o Common Name.

Substitua yourdomain.com pelo seu domínio real em todos os locais. Para cobrir nomes de anfitrião adicionais, acrescente-os à lista de SANs separados por vírgulas, por exemplo DNS:api.yourdomain.com. Para um wildcard, inclua tanto o wildcard como o domínio simples: DNS:*.yourdomain.com,DNS:yourdomain.com.

Se preferir uma chave ECDSA (mais pequena e mais rápida, com suporte generalizado para P-256), gere a chave e a CSR desta forma:

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

Passo 3: Localize os seus ficheiros

Liste o diretório atual para confirmar que ambos os ficheiros foram criados:

ls

Deverá ver dois novos ficheiros:

  • yourdomain.key: a sua chave privada. Mantenha-a no servidor, faça uma cópia de segurança com segurança e nunca a envie a ninguém, incluindo a Autoridade Certificadora. Quem detiver a chave pode fazer-se passar pelo seu site.
  • yourdomain.csr: o seu Certificate Signing Request. Este é o ficheiro que submete ao fornecedor de SSL.

Passo 4: Verifique a CSR (opcional, mas recomendado)

Antes de a submeter, verifique se a CSR contém o assunto e os SANs corretos e se a sua assinatura é válida. Isto descodifica o pedido localmente com o OpenSSL:

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

Confirme que a linha Subject apresenta os seus detalhes, que X509v3 Subject Alternative Name lista todos os nomes de anfitrião esperados, e que a verificação da assinatura apresenta verify OK. O algoritmo de assinatura deve indicar sha256WithRSAEncryption (ou ecdsa-with-SHA256 para uma chave ECDSA). Se preferir não utilizar a linha de comandos, cole a CSR no nosso descodificador de CSR online para ler os mesmos campos num navegador.

Passo 5: Submeta a sua CSR

Para copiar a CSR para a sua encomenda, imprima o seu conteúdo:

cat yourdomain.csr

Verá um bloco de texto semelhante a este:

-----BEGIN CERTIFICATE REQUEST-----
MIIBozCB... (a long string of characters)
-----END CERTIFICATE REQUEST-----

Copie o bloco inteiro, incluindo as linhas —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—– (cada marcador tem cinco hífenes de cada lado). Esse bloco inteiro é a sua CSR. Cole-o no formulário de encomenda durante a sua compra, e mantenha a chave privada correspondente no servidor.

Se preferir não utilizar a linha de comandos, pode também criar o pedido com o nosso Gerador de CSR online. Note que este gera a chave privada no seu navegador, portanto guarde essa chave você mesmo e transfira-a para o servidor.

Depois de a sua CA validar a CSR e emitir o certificado, continue com as instruções de instalação de SSL no Ubuntu.

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.