Pesquisar

Automatize seu SSL Let’s Encrypt com Crontab de forma segura

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:

  1. Acesse o diretório /etc/letsencrypt/renewal/
  2. Edite o arquivo correspondente ao domínio desejado, por exemplo seudominio.com.conf
  3. 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.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana