SSL Let's Encrypt na VPS com Nginx
Site sem cadeado perde confiança e ranking. Este guia mostra como emitir, renovar e auditar certificado SSL gratuito na sua VPS com Nginx e Certbot.
O que é SSL e por que importa
SSL (hoje TLS) criptografa tráfego entre navegador e servidor. Google prioriza HTTPS, navegadores marcam HTTP como inseguro e gateways de pagamento exigem loja com cadeado válido. Na VPS root, você emite e renova certificado sem pagar CA comercial para a maioria dos casos.
| Situação | Sem SSL | Com Let's Encrypt |
|---|---|---|
| Loja virtual | Abandono de checkout | Confiança e PCI alinhados |
| API REST | Token exposto | Tráfego cifrado |
| Painel admin | Senha em texto claro | Sessão protegida |
| SEO | Sinal negativo | HTTPS como baseline |
Lojas WooCommerce no Brasil devem combinar SSL com stack descrita em VPS para ecommerce.
Pré requisitos na VPS
- VPS Ubuntu ou Debian com root ou sudo
- Domínio com registro A apontando para IP público da VPS
- Portas 80 e 443 liberadas no firewall
- Nginx instalado com server block básico para o domínio
- SSH seguro configurado antes de expor serviços
Configure firewall com UFW na VPS e siga SSH seguro logo após contratar planos VPS StreetHosting.
Propagação DNS pode levar até 48 horas em alguns registradores. Valide com dig +short seudominio.com.br antes de rodar Certbot.
Instalar Certbot e Nginx
Instalação no Ubuntu
- sudo apt update && sudo apt install certbot python3-certbot-nginx
- Crie server block em /etc/nginx/sites-available/ com server_name e root
- sudo ln -s sites-available/site sites-enabled/
- sudo nginx -t && sudo systemctl reload nginx
Emitir certificado
Com Nginx respondendo na porta 80, execute emissão integrada:
- sudo certbot --nginx -d seudominio.com.br -d www.seudominio.com.br
- Escolha redirect automático de HTTP para HTTPS quando perguntado
- Confirme arquivos em /etc/letsencrypt/live/seudominio.com.br/
| Comando | Uso |
|---|---|
| certbot certificates | Listar certificados e validade |
| certbot renew --dry-run | Simular renovação sem alterar produção |
| nginx -t | Validar sintaxe antes de reload |
| systemctl status certbot.timer | Confirmar timer de renovação |
Headers de segurança recomendados
Após SSL ativo, adicione no server block HTTPS: Strict-Transport-Security, X-Frame-Options e X-Content-Type-Options. Isso reforça confiança em lojas e painéis administrativos.
Vários domínios e renovação
Agências e makers com múltiplos projetos na mesma VPS emitem certificado por domínio. Estrutura completa em vários sites na mesma VPS com Nginx.
Renovação automática
Certificados Let's Encrypt duram 90 dias. Ubuntu instala timer systemd que renova quando faltam 30 dias. Confirme com systemctl list-timers | grep certbot e agende lembrete mensal para dry run manual.
Automação n8n e webhooks
Workflows em VPS Ryzen que recebem webhook externo também precisam HTTPS. Emita certificado no subdomínio n8n.seudominio.com.br e restrinja acesso por IP ou VPN quando possível.
- Um certificado independente por domínio crítico
- Redirect www e apex consistente
- Certificado staging Let's Encrypt para testes de CI
- Backup de /etc/letsencrypt antes de rebuild da VPS
Troubleshooting e auditoria
| Erro comum | Causa provável | Correção |
|---|---|---|
| Connection refused porta 80 | Firewall ou Nginx parado | ufw allow 80 && systemctl start nginx |
| DNS problem NXDOMAIN | Registro A ausente | Corrigir DNS e aguardar TTL |
| Too many requests | Rate limit Let's Encrypt | Aguardar 1h ou usar staging |
| Mixed content no browser | Assets em HTTP | Forçar HTTPS em URLs internas |
| Certificado expirado | Timer desativado | certbot renew && reload nginx |
Auditoria periódica
- Teste externo com SSL Labs ou similar a cada trimestre
- Verifique cadeia completa servida pelo Nginx (fullchain.pem)
- Monitore validade com Uptime Kuma ou alerta no calendário
Erro de sintaxe no Nginx derruba todos os sites na mesma reload. Sempre rode nginx -t antes de systemctl reload nginx.
Quando subir de plano
Dezenas de certificados e alto tráfego TLS podem exigir mais CPU. Sites corporativos em VPS Xeon; apps com criptografia pesada ao lado de game server em VPS Ryzen. Projetos críticos multi tenant podem migrar para servidor dedicado. Comunidades Minecraft com painel web gerenciado usam Minecraft Pro com SSL já incluído no fluxo de painel.
Perguntas frequentes
- Let's Encrypt é gratuito para sempre?
- Sim, para domínios validados. Limites de rate existem: planeje emissões em lote com cuidado.
- Funciona com IP direto?
- Não. Precisa de domínio apontando para o IP da VPS via registro A ou CNAME.
- Renova sozinho?
- Sim, se timer systemd ou cron estiver ativo. Teste com certbot renew --dry-run mensalmente.
- Wildcard na VPS?
- Sim, via desafio DNS. Exige plugin ou script manual no provedor DNS. Mais comum em VPS é certificado por domínio com plugin Nginx.
Próximo passo
Ver planos VPS
VPS root no Brasil com NVMe e AntiDDoS.
Guias relacionados
Como hospedar vários sites na mesma VPS com Nginx
Uma VPS bem configurada sustenta vários projetos pequenos. O segredo está em virtual hosts separados, limites de recurso e certificados independentes.
SSH seguro em VPS Linux: chaves, senhas, fail2ban e hábitos que evitam invasão
SSH costuma ser o primeiro alvo em qualquer VPS com IP público. Este guia mostra um fluxo prático para reduzir risco sem complicar a rotina: chave ED25519, login sem senha, acesso administrativo com sudo, bloqueio de tentativas automáticas e revisão periódica de chaves autorizadas.
Firewall UFW em VPS Ubuntu: regras seguras sem travar o servidor
UFW facilita a configuração de firewall no Ubuntu, mas a ordem das regras continua sendo decisiva. Este guia mostra como ativar sem perder acesso SSH, como liberar apenas o necessário e como revisar regras quando Docker e serviços web entram em cena.