Antes de começares, o teu domínio tem de apontar para o IP do VPS com um registo A (como fazer). Sem isso, o certificado não pode ser emitido. Nos exemplos, o domínio é omeudominio.pt.
1. Instala o Nginx e abre as portas
apt install -y nginx
ufw allow 'Nginx Full'
Se abrires o IP do VPS no browser, já vais ver a página de boas-vindas do Nginx.
2. O teu site
mkdir -p /var/www/omeudominio
echo '<h1>Funciona!</h1>' > /var/www/omeudominio/index.html
Cria /etc/nginx/sites-available/omeudominio:
server {
listen 80;
server_name omeudominio.pt www.omeudominio.pt;
root /var/www/omeudominio;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
ln -s /etc/nginx/sites-available/omeudominio /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
O nginx -t verifica que não há erros antes de aplicar alguma coisa.
3. O certificado SSL
apt install -y certbot python3-certbot-nginx
certbot --nginx -d omeudominio.pt -d www.omeudominio.pt
Vai pedir-te um e-mail (para te avisar se algo falhar) e que aceites as condições. O certbot configura o Nginx sozinho, incluindo o redirecionamento de HTTP para HTTPS.
4. Renovação automática
Os certificados duram 90 dias e o certbot renova-os sozinho. Confirma que a renovação vai funcionar:
certbot renew --dry-run
Se algo falhar
- O certbot não consegue validar o domínio: confirma com
nslookup omeudominio.ptque aponta para o teu IP e que a porta 80 está aberta. - Cloudflare: com a nuvem laranja também funciona; se der problemas ao emitir, põe a nuvem a cinzento, emite o certificado e volta a pô-la a laranja.
- Erros 502: se o Nginx faz de proxy para uma aplicação (Node, PHP...), essa aplicação não está a correr ou está à escuta noutra porta.