bg-tutorials

Como Gerar um CSR no Webmin

Este tutorial mostra como gerar um CSR (Certificate Signing Request) no Webmin. O Webmin é um painel de controlo baseado em navegador para servidores Linux, por isso existem duas formas práticas de criar o CSR: através dos módulos SSL integrados do Webmin (um formulário gráfico para o próprio painel Webmin ou para um virtual host Apache) ou com a linha de comandos OpenSSL através do terminal integrado do Webmin. A via do OpenSSL é a mais flexível e produz uma chave e um CSR que pode utilizar com qualquer servidor web (Apache, Nginx, Lighttpd, ou qualquer outro que o Webmin gira).

Os passos abaixo assumem o Webmin 2.x moderno e o OpenSSL 3.x, que são as versões atuais em todas as distribuições Linux suportadas em 2026 (Ubuntu 22.04 / 24.04 / 26.04, Debian 12 e 13, RHEL 9 e 10, Rocky 9 e 10, AlmaLinux 9 e 10, openSUSE Leap 15.6 e Tumbleweed). O resultado é um CSR padrão codificado em PEM e assinado com SHA-256, aceite por qualquer Autoridade de Certificação pública.

Passo 1: Iniciar sessão no Webmin

Abra o Webmin num navegador no endereço do seu servidor, na porta 10000:

https://yourwebsite.com:10000

Substitua yourwebsite.com pelo nome de anfitrião ou endereço IP do seu servidor. A porta 10000 é a porta padrão do Webmin. Inicie sessão com a conta root ou um utilizador do Webmin com permissão para gerir SSL.

Passo 2: Abrir o terminal do Webmin

O Webmin 2.x vem com um terminal integrado que pode utilizar sem abrir uma sessão SSH separada. No painel esquerdo, imediatamente abaixo do link Refresh Modules, clique no ícone Terminal (segundo ícone a partir da esquerda), ou pressione Alt + K para o abrir. Aparece uma linha de comandos, executada com o utilizador com o qual iniciou sessão.

Se preferir uma ligação SSH direta a partir da sua própria máquina, ligue-se ao mesmo servidor e execute o comando do passo seguinte aí. O resultado é idêntico.

Passo 3: Gerar a chave privada e o CSR com OpenSSL

No terminal, execute o comando abaixo. Este cria uma chave RSA de 2048 bits e um CSR correspondente num único passo, com o assunto e os Subject Alternative Names (SANs) fornecidos diretamente na linha de comando, para que o OpenSSL não interrompa para fazer perguntas interativas:

sudo openssl req -new -newkey rsa:2048 -noenc 
-keyout /etc/ssl/private/yourwebsite.com.key 
-out /etc/ssl/private/yourwebsite.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com" 
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"

No Debian e no Ubuntu, o diretório /etc/ssl/private/ já existe. No RHEL, Rocky, AlmaLinux e Fedora, a convenção é /etc/pki/tls/private/ para as chaves e /etc/pki/tls/certs/ para o CSR. Escolha caminhos que o seu servidor web possa ler, ou guarde os ficheiros na sua pasta pessoal e mova-os mais tarde. Se o diretório de destino não existir, crie-o primeiro com sudo mkdir -p /etc/ssl/private.

O que faz cada parte do comando:

  • -newkey rsa:2048 gera uma nova chave RSA de 2048 bits. 2048 bits é o mínimo atual para certificados públicos. Utilize rsa:4096 para uma chave maior, ou mude para ECDSA (ver abaixo).
  • -noenc deixa a chave privada sem encriptação, para que o servidor web a possa ler ao iniciar sem exigir uma frase-passe. (No OpenSSL 1.x, a opção equivalente é -nodes; ambas ainda funcionam no OpenSSL 3.x.)
  • -keyout e -out definem o nome do ficheiro da chave privada e do ficheiro CSR.
  • -subj fornece o assunto do certificado diretamente na linha de comando. Substitua os valores de exemplo pelos seus dados reais:
    • C: código de país de duas letras onde a sua organização está legalmente registada (por exemplo, US).
    • ST: nome completo do estado ou província (por exemplo, California), sem abreviaturas.
    • L: nome completo da cidade ou localidade (por exemplo, San Jose).
    • O: nome legal da organização. Para um certificado de Domain Validation (DV), pode omitir ou definir como o seu domínio.
    • CN: Fully Qualified Domain Name (FQDN) do site que deseja proteger (por exemplo, yourwebsite.com).
  • -addext “subjectAltName=…” lista todos os nomes de anfitrião que o certificado deve cobrir. As CAs públicas validam com base na lista SAN, por isso inclua aqui também o Common Name. Para um wildcard, inclua tanto o wildcard como o domínio raiz: DNS:*.yourwebsite.com,DNS:yourwebsite.com. Os wildcards cobrem apenas um nível de subdomínio e não correspondem ao domínio raiz por si só.

Se preferir uma chave ECDSA (mais pequena e mais rápida, com P-256 amplamente suportado), utilize esta variante em alternativa:

sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -noenc 
-keyout /etc/ssl/private/yourwebsite.com.key 
-out /etc/ssl/private/yourwebsite.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com" 
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"

A barra invertida no final de cada linha é uma continuação de linha da shell, pelo que o comando permanece uma única instrução lógica dividida em várias linhas para facilitar a leitura. Se o seu terminal não lidar bem com o formato de múltiplas linhas, cole o comando completo numa única linha.

Passo 4: Proteger a chave privada

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

sudo ls -l /etc/ssl/private/yourwebsite.com.*

Deverá ver dois novos ficheiros:

  • yourwebsite.com.key: a chave privada. Deve permanecer no servidor, nunca deve ser enviada para a Autoridade de Certificação e nunca deve ser enviada por e-mail ou colada em qualquer formulário. Quem tiver acesso à chave pode fazer-se passar pelo seu site.
  • yourwebsite.com.csr: o Certificate Signing Request. É o único ficheiro que deve submeter ao fornecedor de SSL.

Restrinja as permissões da chave privada para que apenas o root a possa ler:

sudo chmod 600 /etc/ssl/private/yourwebsite.com.key

Em distribuições com SELinux ativado (RHEL, Rocky, AlmaLinux, Fedora), reaplique o contexto SELinux correto depois de mover a chave para a localização final, por exemplo com sudo restorecon -Rv /etc/pki/tls/.

Passo 5: Verificar o CSR (opcional, mas recomendado)

Antes de submeter o CSR, confirme que contém o assunto e os SANs corretos e que a sua assinatura é válida:

openssl req -noout -text -verify -in /etc/ssl/private/yourwebsite.com.csr

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

Passo 6: Copiar e submeter o CSR

Imprima o CSR para que o possa copiar:

sudo cat /etc/ssl/private/yourwebsite.com.csr

Verá um bloco de texto semelhante a este:

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

Copie o bloco completo, incluindo as linhas —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—– (cada marcador tem cinco hífenes de cada lado). Cole-o no formulário de encomenda ao comprar o seu certificado SSL, e deixe a chave privada correspondente no servidor.

Gerar um CSR através dos módulos gráficos do Webmin

Se preferir evitar a linha de comandos, o Webmin inclui dois formulários gráficos que criam um CSR por si. Escolha o que corresponde ao objetivo do certificado.

Para um virtual host Apache (o seu site)

  • Vá a Servers > Apache Webserver.
  • Abra o separador Global Configuration, clique em Configure Apache Modules, marque o módulo ssl, e clique em Enable Selected Modules se ainda não estiver ativado.
  • No separador Existing virtual hosts, abra o virtual host da porta 443 (ou crie um) clicando no ícone do globo.
  • Na página Virtual Server Options, escolha SSL Options e clique em Create signing request.
  • Preencha o formulário (país, estado, cidade, organização, common name, e-mail, tamanho da chave 2048 ou superior, e quaisquer Subject Alternative Names), escolha onde o Webmin deve escrever os ficheiros .csr e .key, e clique em Create Now.

Os dois ficheiros aparecem nos caminhos que especificou. Utilize o .csr na sua encomenda e mantenha o .key no servidor.

Para o próprio painel Webmin (porta 10000)

Se apenas precisar de um certificado para a interface de login do Webmin, e não para um site, gere o CSR a partir do módulo de configuração do Webmin:

  • Vá a Webmin > Webmin Configuration > SSL Encryption.
  • Abra o separador Create Signing Request.
  • Preencha o nome de anfitrião (o nome público através do qual acede ao Webmin), país, estado, cidade, organização, e-mail e tamanho da chave, e depois clique em Create.

O Webmin grava o pedido e a chave correspondente em /etc/webmin/. Depois de a CA devolver o certificado emitido, instale-o na mesma página SSL Encryption, para que substitua o ficheiro padrão /etc/webmin/miniserv.pem.

Depois de receber o certificado

Depois de a Autoridade de Certificação validar o seu CSR e emitir o certificado, instale-o no servidor. Os passos exatos dependem do serviço a que o certificado se destina:

Se preferir um fluxo de trabalho totalmente gráfico, executado no seu navegador, pode também criar o CSR com o nosso Gerador de CSR online. Este gera a chave privada no seu navegador, por isso guarde-a você mesmo e mova-a para o servidor antes de concluir a instalação.

Perguntas Frequentes

Onde é que o Webmin guarda o CSR e a chave privada?

Onde quer que indique. Com o comando OpenSSL, os ficheiros são escritos nos caminhos que indicar com -keyout e -out. No formulário Create signing request do módulo Apache, escolhe os caminhos de saída no próprio formulário. Em Webmin > Webmin Configuration > SSL Encryption, o Webmin grava-os em /etc/webmin/. No Debian e no Ubuntu, o local convencional para as chaves é /etc/ssl/private/; no RHEL, Rocky, AlmaLinux e Fedora é /etc/pki/tls/private/.

Tenho de usar o terminal do Webmin, ou posso entrar via SSH?

Ambos funcionam. O terminal integrado do Webmin (o ícone no painel esquerdo, ou Alt + K) é conveniente porque já tem sessão iniciada, mas o mesmo comando OpenSSL executado numa sessão SSH normal produz um CSR e uma chave idênticos. Use o que lhe for mais fácil.

Qual é a diferença entre -noenc e -nodes?

Fazem a mesma coisa: indicam ao OpenSSL para deixar a chave privada sem encriptação no disco, para que o servidor web a possa ler ao iniciar sem exigir uma frase-passe. -nodes é o nome histórico e ainda funciona no OpenSSL 3.x. -noenc é o novo alias introduzido no OpenSSL 3.0 e é a grafia preferida a partir de agora. Use a que preferir por hábito.

O CSR do Webmin é igual a um gerado por qualquer outra ferramenta?

Sim. Um CSR é um pedido padrão codificado em PEM, definido pelo PKCS #10, e qualquer CA pode assiná-lo independentemente de onde foi criado. O CSR que gera no terminal do Webmin, através do formulário Create signing request do módulo Apache, ou com o nosso Gerador de CSR online, produzem todos o mesmo tipo de ficheiro. O que importa é que a chave privada criada ao mesmo tempo permaneça no servidor onde pretende instalar o certificado.

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.