Nos últimos meses, houve uma mudança significativa no comportamento padrão do Let’s Encrypt. Agora, em muitos ambientes, os certificados não estão mais sendo renovados automaticamente por padrão. Isso tem deixado muitos sites vulneráveis, com certificados expirando sem aviso. Neste artigo do blog Dolutech, vamos mostrar como automatizar a renovação do SSL Let’s Encrypt de forma confiável usando o Crontab, garantindo segurança e disponibilidade contínua para seu site.
Acompanhe este guia completo e evite problemas com expiração de certificados.
Por que o Let’s Encrypt deixou de renovar automaticamente
O Let’s Encrypt é amplamente utilizado por sua simplicidade, confiabilidade e por ser gratuito. No entanto, algumas distribuições Linux mais recentes, especialmente voltadas a servidores minimalistas, passaram a não incluir por padrão os serviços responsáveis pela renovação automática dos certificados.
Em muitos casos, o serviço systemd.timer
ou tarefas agendadas via cron não estão mais configuradas automaticamente durante a instalação do Certbot. Isso exige atenção e ação manual para garantir que seu site continue operando com HTTPS válido.
Impactos da falta de automação
Quando o SSL expira, o navegador bloqueia o acesso do usuário exibindo um aviso de site inseguro. Isso prejudica a credibilidade do seu negócio, causa perda de tráfego e compromete a confiança do visitante.
Além disso, ferramentas de monitoramento nem sempre alertam com antecedência suficiente. Por isso, a Dolutech recomenda fortemente que todos os servidores utilizem um processo confiável de renovação automatizada, validado regularmente.
Instalação do Certbot
Antes de criar a rotina de renovação automática, é importante garantir que o Certbot está instalado corretamente. O Certbot é o cliente oficial recomendado para gerenciamento dos certificados Let’s Encrypt.
Para instalar no Ubuntu ou Debian:
sudo apt update
sudo apt install certbot python3-certbot-nginx
Para servidores com Apache, substitua o plugin Nginx pelo Apache:
sudo apt install certbot python3-certbot-apache
Em sistemas baseados em RHEL ou Amazon Linux:
sudo yum install certbot python3-certbot-nginx
Emitindo o certificado SSL pela primeira vez
Com o Certbot instalado, emita o certificado para seu domínio utilizando:
sudo certbot --nginx -d seudominio.com -d www.seudominio.com
Este comando irá configurar o certificado SSL e ajustar automaticamente o seu servidor web para redirecionar o tráfego para HTTPS. Após a emissão inicial, é hora de garantir que a renovação ocorrerá sem necessidade de intervenção manual.
Criando uma rotina automática com Crontab
O Crontab é uma ferramenta de agendamento de tarefas presente na maioria das distribuições Linux. Com ele, é possível executar comandos em intervalos definidos, garantindo a renovação do certificado SSL Let’s Encrypt de forma regular e segura.
Para configurar, execute:
sudo crontab -e
Em seguida, adicione a linha:
0 */12 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Essa configuração realiza a verificação a cada 12 horas. Se o certificado estiver a menos de 30 dias do vencimento, ele será renovado automaticamente e o servidor Nginx será recarregado para aplicar o novo certificado.
Se você estiver usando Apache, substitua o comando systemctl reload nginx
por systemctl reload apache2
.
Garantindo que o cron está funcionando corretamente
É fundamental testar o funcionamento antes de confiar no agendamento. Para isso, execute:
sudo certbot renew --dry-run
Este comando realiza uma simulação da renovação sem alterar os certificados reais. Se a saída indicar sucesso, a configuração está correta e segura.
Utilizando práticas recomendadas com Crontab
Randomizando a execução
Para evitar que múltiplos servidores executem o comando ao mesmo tempo, é possível introduzir um tempo aleatório antes da execução:
0 */12 * * * sleep $((RANDOM % 3600)) && certbot renew --quiet --post-hook "systemctl reload nginx"
Essa prática ajuda a distribuir a carga sobre os servidores de validação, principalmente em ambientes com muitos domínios.
Hooks personalizados
O Certbot oferece suporte a comandos personalizados antes e depois da renovação. Isso pode ser útil em casos onde é necessário parar um serviço temporariamente:
certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
Esses comandos garantem que o serviço esteja livre para utilizar a porta 80 durante o processo de renovação, quando necessário.
Como desativar a renovação automática para um domínio específico
Em alguns casos, você pode desejar que um certificado específico não seja renovado automaticamente. Para isso:
- Acesse o diretório
/etc/letsencrypt/renewal/
- Edite o arquivo correspondente ao domínio desejado, por exemplo
seudominio.com.conf
- Adicione a linha
autorenew = False
na seção de parâmetros
Outra alternativa é renomear o arquivo de configuração para que o Certbot ignore durante a verificação:
mv seudominio.com.conf seudominio.com.conf.disabled
Monitorando o sucesso das renovações
Embora o --quiet
evite mensagens a cada execução, é recomendável implementar um sistema de log ou alertas. Você pode redirecionar a saída para um arquivo e verificar periodicamente:
0 */12 * * * certbot renew >> /var/log/certbot-renew.log 2>&1
Também é possível criar scripts que alertam por e-mail ou notificações, garantindo que qualquer falha seja detectada imediatamente.
Conclusão
Neste artigo do blog Dolutech, mostramos como adaptar seus servidores à nova realidade do Let’s Encrypt, em que a renovação automática não está mais garantida por padrão. Com a configuração correta do Crontab e o uso de comandos inteligentes, você garante que seus certificados SSL sejam renovados com segurança, sem surpresas desagradáveis.
Nós, da Dolutech, seguimos essas práticas internamente em todos os nossos ambientes, e recomendamos que você aplique o mesmo nível de cuidado em sua infraestrutura.
Lembre-se de testar, validar e monitorar constantemente. A segurança começa pela automação correta.
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.