Como Criar um Certificado Autoassinado no Ubuntu

No contexto de servidores web, a segurança é uma prioridade crucial, especialmente quando se trata de comunicação criptografada. Para proteger as conexões e garantir que as informações entre clientes e servidores estejam seguras, os certificados SSL são amplamente utilizados. Entretanto, quando você está configurando ambientes de desenvolvimento ou testes internos, pode não ser necessário adquirir um certificado de uma autoridade certificadora (CA). Nesse caso, criar um certificado autoassinado é uma alternativa eficiente e econômica.

Neste artigo, explicaremos como gerar um certificado autoassinado no Ubuntu usando o OpenSSL, uma ferramenta de código aberto amplamente utilizada para a criação e gerenciamento de certificados SSL/TLS.

Pré-requisitos

Antes de começarmos, é necessário ter acesso a um terminal no Ubuntu com permissões de superusuário e garantir que o OpenSSL esteja instalado no sistema. Caso contrário, você pode instalá-lo com o comando:

sudo apt update
sudo apt install openssl

Passo 1: Criar uma Chave Privada

O primeiro passo para criar um certificado SSL é gerar uma chave privada, que será usada para assinar o certificado. No terminal, execute o seguinte comando:

openssl genrsa -out chave-privada.key 2048

Este comando cria uma chave privada de 2048 bits e a salva no arquivo chave-privada.key. A chave privada é a base para toda a criptografia envolvida e deve ser mantida segura.

Passo 2: Criar uma Solicitação de Assinatura de Certificado (CSR)

Em seguida, você precisará gerar uma Solicitação de Assinatura de Certificado (CSR), que contém as informações da sua organização e do domínio que o certificado cobrirá. Para isso, use o comando:

openssl req -new -key chave-privada.key -out requisicao.csr

Você será solicitado a fornecer informações como:

  • Country Name (Código do País): Informe o código de duas letras do seu país (por exemplo, BR).
  • State or Province Name (Estado/Província): O nome do estado ou província (exemplo: São Paulo).
  • Locality Name (Cidade): O nome da sua cidade.
  • Organization Name (Nome da Organização): O nome completo da sua empresa ou organização.
  • Organizational Unit Name (Unidade Organizacional): O departamento da organização (exemplo: TI).
  • Common Name (Nome Comum): Geralmente o nome do domínio (exemplo: http://www.seudominio.com).
  • Email Address (Endereço de E-mail): Seu endereço de e-mail.

Passo 3: Gerar o Certificado Autoassinado

Agora que você tem a chave privada e o CSR, é possível gerar o certificado autoassinado. O certificado será válido por 365 dias, mas você pode ajustar esse valor conforme necessário.

openssl x509 -req -days 365 -in requisicao.csr -signkey chave-privada.key -out certificado.crt

Este comando cria um certificado chamado certificado.crt que é assinado pela chave privada que você gerou no primeiro passo.

Passo 4: Verificar o Certificado

É sempre bom verificar se o certificado foi gerado corretamente. Para isso, execute o seguinte comando:

openssl x509 -in certificado.crt -text -noout

Este comando exibe as informações detalhadas do certificado, permitindo que você verifique se todos os dados inseridos estão corretos.

Passo 5: Configurar o Certificado no Servidor Web

Agora que o certificado foi gerado, ele precisa ser configurado no servidor web. A seguir, um exemplo de como configurar o certificado no Nginx.

Configuração no Nginx:

Abra o arquivo de configuração do Nginx correspondente ao seu domínio ou site:

sudo nano /etc/nginx/sites-available/seusite

Dentro do bloco server, adicione as linhas que apontam para o caminho da chave privada e do certificado:

server {
    listen 443 ssl;
    server_name www.seusite.com;

    ssl_certificate /caminho/para/certificado.crt;
    ssl_certificate_key /caminho/para/chave-privada.key;

    # Outras configurações
}

Após modificar o arquivo de configuração, reinicie o Nginx para que as alterações entrem em vigor:

sudo systemctl restart nginx

Considerações Finais

Certificados autoassinados são úteis em ambientes de teste e desenvolvimento, mas vale lembrar que navegadores modernos irão emitir alertas de segurança quando encontram um certificado que não é emitido por uma CA confiável. Para ambientes de produção, é altamente recomendado obter um certificado de uma CA reconhecida, como Let’s Encrypt, que oferece certificados gratuitos.

Gerar um certificado autoassinado no Ubuntu com OpenSSL é um processo simples que proporciona uma solução eficaz para testes e ambientes internos. Seguindo este guia, você será capaz de configurar rapidamente um certificado e assegurar suas conexões locais.


Esse artigo pode servir como um guia para desenvolvedores e administradores que estão trabalhando em servidores Linux. Caso queira expandir ou modificar alguma parte do conteúdo, podemos ajustá-lo conforme necessário!

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment