Como Configurar um Certificado SSL Gratuito com Let’s Encrypt em Ubuntu ou Debian

  • 9 de janeiro de 2025

Neste tutorial, você aprenderá a instalar um certificado SSL gratuito da Let’s Encrypt em seu servidor Ubuntu ou Debian, garantindo que seu site seja acessado com HTTPS de forma segura.


O que é Let’s Encrypt?

O Let’s Encrypt é uma Autoridade Certificadora (CA) gratuita que permite que você emita certificados SSL/TLS para proteger sites e aplicativos, garantindo conexões seguras.


Pré-requisitos

  1. Servidor Ubuntu ou Debian: Com acesso SSH.
  2. Domínio registrado: Com o DNS configurado para apontar para o servidor.
  3. Servidor web instalado: Nginx ou Apache.
  4. Acesso como usuário com privilégios sudo.

Passo 1: Atualizar os Pacotes do Servidor

Certifique-se de que o servidor está atualizado:

sudo apt update && sudo apt upgrade -y

Passo 2: Instalar o Certbot

O Certbot é a ferramenta usada para gerar e gerenciar certificados SSL.

Para Nginx:

sudo apt install certbot python3-certbot-nginx -y

Para Apache:

sudo apt install certbot python3-certbot-apache -y

Passo 3: Configurar o Servidor Web

Antes de instalar o certificado, o site deve estar configurado no Nginx ou Apache.

Configuração para Nginx:

Edite ou crie o arquivo de configuração do seu domínio:

sudo nano /etc/nginx/sites-available/meusite.com

Adicione a configuração básica:

server {
    listen 80;
    server_name meusite.com www.meusite.com;

    root /var/www/meusite;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Salve e habilite a configuração:

sudo ln -s /etc/nginx/sites-available/meusite.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Configuração para Apache:

Edite ou crie o arquivo de configuração do seu domínio:

sudo nano /etc/apache2/sites-available/meusite.com.conf

Adicione a configuração básica:

<VirtualHost *:80>
    ServerName meusite.com
    ServerAlias www.meusite.com

    DocumentRoot /var/www/meusite

    <Directory /var/www/meusite>
        AllowOverride All
    </Directory>
</VirtualHost>

Salve e habilite a configuração:

sudo a2ensite meusite.com.conf
sudo systemctl reload apache2

Passo 4: Obter o Certificado SSL

Use o Certbot para gerar o certificado. O processo é simples e automatizado.

Para Nginx:

sudo certbot --nginx -d meusite.com -d www.meusite.com

Para Apache:

sudo certbot --apache -d meusite.com -d www.meusite.com
  • Certbot perguntará:
    • Se deseja redirecionar HTTP para HTTPS. Escolha 2 para redirecionar automaticamente.

Passo 5: Verificar o Certificado

Após a instalação, você pode verificar se o certificado está ativo acessando:

https://meusite.com

Outra forma de verificar é executando:

sudo certbot certificates

Passo 6: Configurar a Renovação Automática

Os certificados do Let’s Encrypt expiram em 90 dias. Configure a renovação automática com o cron:

  1. Edite o cron: sudo crontab -e
  2. Adicione a seguinte linha ao final do arquivo: 0 0,12 * * * certbot renew --quiet

Isso renova os certificados automaticamente duas vezes ao dia.


Passo 7: Testar a Renovação

Teste se a renovação está funcionando corretamente:

sudo certbot renew --dry-run

Se não houver erros, a renovação está configurada.


Passo 8: Configurar Redirecionamento Manual (Opcional)

Se você não configurou o redirecionamento para HTTPS, pode fazer manualmente.

Para Nginx:

Adicione esta linha ao bloco server:

return 301 https://$host$request_uri;

Para Apache:

Edite o arquivo .htaccess no diretório do seu site:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Passo 9: Monitorar o Certificado

Use ferramentas como SSL Labs para testar o certificado e garantir que ele está funcionando corretamente.


Com este tutorial, você instalou e configurou um certificado SSL gratuito com Let’s Encrypt, protegendo seu site com HTTPS. Caso tenha dúvidas ou precise de mais informações, é só perguntar! 🚀

Press ESC to close