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

