Pré-requisitos
- •Um servidor VPS com Ubuntu 22.04 (ou similar)
- •Nginx instalado
- •Um domínio apontado para o IP do teu servidor
- •Acesso root ou sudo
Passo 1: Instalar Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx -yPasso 2: Configurar Nginx básico
Cria um ficheiro de configuração para o teu domínio:
sudo nano /etc/nginx/sites-available/meusite.ptserver {
listen 80;
server_name meusite.pt www.meusite.pt;
root /var/www/meusite;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}sudo ln -s /etc/nginx/sites-available/meusite.pt /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxPasso 3: Obter o certificado SSL
sudo certbot --nginx -d meusite.pt -d www.meusite.ptO Certbot irá:
- Verificar que és o dono do domínio
- Emitir o certificado
- Atualizar automaticamente a configuração do Nginx
Passo 4: Verificar renovação automática
Os certificados Let's Encrypt expiram ao fim de 90 dias, mas o Certbot renova automaticamente.
# Testar renovação (sem fazer nada de real)
sudo certbot renew --dry-run
# Ver timer do sistema
systemctl status certbot.timerConfiguração HTTPS recomendada
Após o Certbot, adiciona estas configurações para melhorar a segurança:
server {
listen 443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Outras headers de segurança
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
}Testar a configuração SSL
Acede a SSL Labs para verificar a qualidade do teu certificado. Uma boa configuração deve obter nota A ou A+.
Conclusão
Com Certbot e Let's Encrypt, configurar SSL no Nginx é rápido, gratuito e com renovação automática. Um must-have para qualquer servidor em produção.