Português

Instalar Nginx com certificado SSL (Certbot)

Este guia explica como instalar Nginx, configurar um site e obter um certificado SSL gratuito com Certbot para proteger o seu site com HTTPS.

📋 Pré-requisitos

  • VPS com acesso root ou sudo
  • Domínio apontando para o IP do servidor (ex.: mysite.com)
  • Portas 80 (HTTP) e 443 (HTTPS) abertas na firewall

Nota: Sem domínio, pode testar com o IP, mas o Certbot requer um domínio para certificados SSL.

💡 Recomendação de infraestrutura

Nginx e Certbot funcionam perfeitamente nos nossos VPS NVMe com desempenho de disco excecional.

🚀 Passo 1: Instalar Nginx

Bash
sudo apt update sudo apt install nginx -y nginx -v sudo systemctl status nginx

Autorizar Nginx na firewall (UFW):

Bash
sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTPS' sudo ufw status

Teste no browser: http://your-server-ip ou http://your-domain.com

📝 Passo 2: Configurar o site

Bash
sudo mkdir -p /var/www/mysite.com sudo chown -R $USER:$USER /var/www/mysite.com sudo chmod -R 755 /var/www/mysite.com nano /var/www/mysite.com/index.html

Conteúdo HTML simples:

HTML
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>My Website</title> 7</head> 8<body> 9 <h1>Welcome to my website!</h1> 10 <p>Your website is working correctly with Nginx.</p> 11</body> 12</html>

Criar configuração Nginx:

Bash
sudo nano /etc/nginx/sites-available/mysite.com
Nginx
1server { 2 listen 80; 3 listen [::]:80; 4 5 server_name mysite.com www.mysite.com; 6 7 root /var/www/mysite.com; 8 index index.html; 9 10 location / { 11 try_files $uri $uri/ =404; 12 } 13}

Importante: Substitua mysite.com pelo seu domínio em todas as ocorrências.

Ativar o site:

Bash
sudo ln -s /etc/nginx/sites-available/mysite.com /etc/nginx/sites-enabled/ sudo nginx -t sudo rm /etc/nginx/sites-enabled/default sudo systemctl reload nginx

Teste: http://your-domain.com

🔒 Passo 3: Instalar Certbot e obter certificado SSL

Bash
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d mysite.com -d www.mysite.com

O Certbot fará algumas perguntas:

  1. Email: para notificações de renovação
  2. Termos: aceitar com A
  3. Partilhar email: Y ou N
  4. Redirecionar HTTP para HTTPS: escolher 2 (recomendado)
Bash
sudo certbot certificates

Teste: https://your-domain.com — deve ver o cadeado verde 🔒

🔄 Passo 4: Renovação automática

Bash
sudo certbot renew --dry-run sudo systemctl status certbot.timer sudo systemctl enable certbot.timer sudo systemctl start certbot.timer

📁 Estrutura de ficheiros

/var/www/mysite.com/          # Ficheiros do site
/etc/nginx/                   # Configuração Nginx
/etc/nginx/sites-available/   # Sites disponíveis
/etc/nginx/sites-enabled/     # Sites ativos
/etc/letsencrypt/             # Certificados SSL

🛠️ Comandos úteis

Bash
1sudo systemctl start nginx 2sudo systemctl stop nginx 3sudo systemctl restart nginx 4sudo systemctl reload nginx 5sudo nginx -t 6sudo certbot renew 7sudo certbot certificates 8sudo tail -f /var/log/nginx/error.log

🆘 Resolução de problemas

Nginx não arranca

Bash
sudo nginx -t sudo journalctl -u nginx -n 50

Certificado SSL não instala

  1. Verifique que o domínio aponta para o IP: dig mysite.com
  2. Portas 80 e 443 abertas: sudo ufw status
  3. Nginx a escutar na porta 80: sudo netstat -tlnp | grep nginx
  4. server_name correto na configuração Nginx

Site não carrega em HTTPS

Bash
sudo certbot certificates sudo nginx -t sudo ufw allow 443/tcp

📚 Recursos adicionais

❓ Perguntas frequentes

P: Preciso de pagar pelo certificado SSL?
R: Não! O Certbot usa Let's Encrypt, que oferece certificados gratuitos.

P: O certificado expira?
R: Sim, aos 90 dias, mas o Certbot renova automaticamente.

P: Posso ter vários sites no mesmo servidor?
R: Sim! Crie um ficheiro de configuração por site em /etc/nginx/sites-available/.


O seu site está agora protegido com HTTPS! 🚀🔒

Precisa de ajuda?

Dúvidas sobre este guia? A nossa equipa e a comunidade estão disponíveis para ajudar.

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções