Site com Nginx e HTTPS grátis (Let's Encrypt)

O Nginx é um dos servidores web mais rápidos e usados no mundo, e o Let's Encrypt emite certificados SSL gratuitos e renovados automaticamente. Neste tutorial vamos publicar um site com HTTPS em um servidor VPS com Ubuntu ou Debian, usando o Certbot para configurar tudo.

Antes de começar

O domínio precisa apontar para o servidor: no painel de DNS do seu domínio, crie registros do tipo A para seudominio.com.br e www.seudominio.com.br com o IP do servidor (ele está no seu painel de conta). Se houver firewall ativo, libere as portas 80 e 443.

Instalando o Nginx e o Certbot

# apt update
# apt install -y nginx certbot python3-certbot-nginx

Criando o site

Crie a pasta do site com uma página inicial de teste:

# mkdir -p /var/www/meusite
# echo "<h1>Meu site</h1>" > /var/www/meusite/index.html
# nano /etc/nginx/sites-available/meusite
Cole a configuração abaixo, trocando o domínio pelo seu:

server {
    listen 80;
    listen [::]:80;
    server_name seudominio.com.br www.seudominio.com.br;
    root /var/www/meusite;
    index index.html index.php;
}
Ative o site, remova o site padrão do Nginx e recarregue:

# ln -s /etc/nginx/sites-available/meusite /etc/nginx/sites-enabled/
# rm -f /etc/nginx/sites-enabled/default
# nginx -t && systemctl reload nginx
Acesse http://seudominio.com.br e verá a página de teste.

Ativando o HTTPS com o Let's Encrypt

# certbot --nginx -d seudominio.com.br -d www.seudominio.com.br
O Certbot pede um e-mail (usado para avisos de expiração) e o aceite dos termos. Em seguida, emite o certificado, configura o Nginx e passa a redirecionar o HTTP para HTTPS. Pronto: acesse https://seudominio.com.br.

Renovação automática

Os certificados do Let's Encrypt valem 90 dias, e o Certbot os renova sozinho por um agendamento do sistema. Para conferir se a renovação está funcionando:

# certbot renew --dry-run
Se aparecer "all simulated renewals succeeded", está tudo certo. Coloque os arquivos do seu site em /var/www/meusite; para sites em PHP, instale o php-fpm e inclua o bloco de PHP na configuração do site.
Caso tenha alguma dificuldade, abra um ticket de suporte: Abrir ticket