SSL/Certbot - Certificados
📚 Sobre este manual: Como obter e gerenciar certificados SSL gratuitos com Let's Encrypt e Certbot.
📑 Índice Rápido
📋 Pré-requisitos
⚠️ Antes de começar, verifique:
- ☐ O domínio já está apontando para o IP do servidor
- ☐ O DNS já propagou (use
dig seudominio.com.brpara verificar) - ☐ O site está acessível via HTTP (porta 80)
- ☐ O Nginx está configurado e rodando
📦 Instalar Certbot
# Instalar Certbot e plugin do Nginx
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
# Verificar instalação
certbot --version
🔐 Emitir Certificado SSL
Para um domínio único:
sudo certbot --nginx -d seudominio.com.br
Para domínio com www:
sudo certbot --nginx -d seudominio.com.br -d www.seudominio.com.br
Durante a instalação, o Certbot vai perguntar:
- E-mail: Para notificações de renovação
- Termos de serviço: Digite A para aceitar
- Compartilhar e-mail: N (não) ou S (sim)
- Redirecionar HTTP para HTTPS: 2 (recomendado)
✅ Após concluir:
- Certificado salvo em:
/etc/letsencrypt/live/seudominio.com.br/ - Nginx configurado automaticamente com HTTPS
- HTTP redireciona para HTTPS
🔄 Renovação Automática
Os certificados do Let's Encrypt duram 90 dias. O Certbot já configura uma tarefa automática:
# Verificar tarefa de renovação
sudo systemctl list-timers | grep certbot
# Testar renovação (dry-run)
sudo certbot renew --dry-run
# Renovar manualmente (se necessário)
sudo certbot renew
💡 Dica: O Certbot renova automaticamente certificados que estão perto de vencer. O dry-run testa se tudo está funcionando.
🔍 Verificar Certificados
# Listar todos certificados
sudo certbot certificates
# Ver detalhes de um certificado específico
sudo certbot certificates --cert-name seudominio.com.br
# Verificar se o site está com HTTPS
curl -I https://seudominio.com.br
# Ver quando o certificado expira
echo | openssl s_client -servername seudominio.com.br -connect seudominio.com.br:443 2>/dev/null | openssl x509 -noout -dates
🗑️ Remover Certificado
# Remover um certificado específico
sudo certbot delete --cert-name seudominio.com.br
# Revogar um certificado (se comprometido)
sudo certbot revoke --cert-path /etc/letsencrypt/live/seudominio.com.br/cert.pem
⚠️ Atenção: Após remover o certificado, o Nginx pode parar de funcionar. Configure novamente para HTTP se necessário.
❌ Erros Comuns e Soluções
DNS problem: NXDOMAIN
O domínio não está apontando para o servidor.
# Verificar DNS
dig seudominio.com.br
# Se não resolver, aguarde propagação (pode levar até 30 minutos)
DNS problem: DNSSEC: Bogus
Problema com DNSSEC no domínio.
# Solução: Desativar DNSSEC no painel da registradora
Connection refused / Timeout
A porta 80 não está acessível.
# Verificar se Nginx está rodando
sudo systemctl status nginx
# Verificar firewall
sudo ufw status
Too many failed authorizations (rate limit)
Muitas tentativas de validação falharam.
# Aguardar 1 hora para nova tentativa
# O erro mostra o horário para tentar novamente
Certificate already exists
Já existe um certificado para esse domínio.
# Ver certificados existentes
sudo certbot certificates
# Forçar renovação
sudo certbot renew --force-renewal
Could not bind to port 80
Porta 80 ocupada.
# Ver o que está usando a porta
sudo lsof -i :80
# Parar o processo ou configurar o Certbot para usar outra porta
💡 Boas práticas:
- ✅ Configure o DNS antes de tentar o Certbot
- ✅ Aguarde a propagação do DNS (teste com
dig) - ✅ Mantenha o Nginx rodando na porta 80
- ✅ Faça dry-run regularmente:
sudo certbot renew --dry-run - ✅ Guarde o e-mail usado, pois receberá avisos de expiração
📌 Estrutura dos arquivos SSL:
/etc/letsencrypt/live/seudominio.com.br/
├── fullchain.pem # Certificado + cadeia
├── privkey.pem # Chave privada
├── cert.pem # Apenas o certificado
└── chain.pem # Cadeia de certificados
Manual Técnico - Última atualização: Março 2026