SSL/Certbot - Certificados - Manual Técnico

SSL/Certbot - Certificados

📚 Sobre este manual: Como obter e gerenciar certificados SSL gratuitos com Let's Encrypt e Certbot.

📋 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.br para 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:

✅ 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