Servidor & DevOps 6 visualizações

Como monitorar automaticamente certificados SSL perto de expirar com um script

Ver no WHMCS

Como monitorar automaticamente certificados SSL perto de expirar com um script (em 5 passos simples)

Olá, amigo(a) GeHost! 😊

Se você já teve o susto de ver seu site travando por causa de um certificado SSL expirado, sabe como isso pode atrapalhar sua presença online. O bom é que, com um pequeno script no seu servidor, você pode receber alertas antes mesmo que o certificado expire — e tudo isso de forma automática!

Neste guia, o Sensei da GeHost vai te mostrar como criar um script simples que verifica a validade dos certificados SSL de seus domínios e te avisa quando estiverem próximos de expirar. Tudo isso com linguagem de programação fácil de entender: bash (o idioma dos servidores).

Passo 1: Acesse o terminal do seu servidor (via SSH)

Para rodar o script, você precisará acessar o terminal do seu servidor. Isso é feito com o SSH — uma conexão segura que o GeHost já preparou para você.

Se você ainda não sabe como fazer isso, basta:

  • Abra o terminal no seu computador (no Windows, use o Windows Terminal ou Putty).
  • Conecte-se ao seu servidor usando o comando: ssh usuario@seu-servidor.gehost.com.br (substitua "usuario" pelo seu nome de usuário no cPanel).
  • Insira sua senha quando pedir.

Pronto! Você está dentro do servidor. 🎉

Passo 2: Crie o script de monitoramento

Vamos criar um arquivo chamado check-ssl-expiration.sh. Esse script vai checar os certificados SSL de seus domínios.

Use o comando abaixo para criar o arquivo e abri-lo no editor nano:

nano check-ssl-expiration.sh

Depois, cole o código abaixo dentro do editor:

#!/bin/bash
# Script para monitorar certificados SSL perto de expirar
# Sensei da GeHost - Guia prático para clientes leigos

# Domínios a verificar (adicione os seus domínios aqui)
DOMAINS=("seudominio.com.br" "www.seudominio.com.br")

# Dias para alerta (ex: 7 dias antes da expiração)
DAYS_THRESHOLD=7

# Cor para alerta
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color

echo -e "${GREEN}Verificando certificados SSL...${NC}"

for domain in "${DOMAINS[@]}"; do
  echo -e "\nVerificando $domain:"
  # Usa openssl para verificar o certificado
  echo | openssl s_client -servername "$domain" -connect "$domain:443" 2>/dev/null | openssl x509 -noout -dates | grep "notAfter" | cut -d= -f2 | while read date; do
    # Converte a data para timestamp
    expire_timestamp=$(date -d "$date" +%s)
    current_timestamp=$(date +%s)
    days_left=$(( (expire_timestamp - current_timestamp) / 86400 ))

    if [ $days_left -le $DAYS_THRESHOLD ]; then
      echo -e "${RED}ALERTA: $domain expira em $days_left dias!${NC}"
    else
      echo -e "${GREEN}$domain ainda tem $days_left dias de validade.${NC}"
    fi
  done
done

echo -e "\n${GREEN}Verificação concluída.${NC}"

Atenção: Substitua seudominio.com.br pelos seus próprios domínios (ex: meusite.com.br).

Passo 3: Torne o script executável

Antes de rodar, você precisa dar permissão de execução ao arquivo:

chmod +x check-ssl-expiration.sh

Pronto! Agora o script está pronto para ser executado.

Passo 4: Execute o script e veja os resultados

Digite o comando abaixo para rodar o script:

./check-ssl-expiration.sh

Se tudo estiver certo, você verá algo assim:

Verificando certificados SSL... Verificando meusite.com.br: ALERTA: meusite.com.br expira em 5 dias! Verificando www.meusite.com.br: meusite.com.br ainda tem 12 dias de validade. Verificação concluída.

Se aparecerem alertas, é hora de renovar o certificado! 🛠️

Passo 5: Automatize com o Cron (agendamento)

Imagine que o script roda sozinho toda semana… e te manda um e-mail se algo estiver errado. Isso é possível com o Cron — um sistema de agendamento do Linux.

Para configurar:

  1. Abra o editor de cron: crontab -e
  2. Adicione esta linha para rodar o script toda segunda-feira às 9h:
  3. 0 9 * * 1 /caminho/para/check-ssl-expiration.sh
  4. Salve e saia: Ctrl + X, depois Y e Enter.

Dica: Se você não souber o caminho do script, use pwd para ver o diretório atual, ou coloque o script na pasta /home/usuario/scripts/ para facilitar.

Como receber alertas por e-mail?

Se quiser que o script envie um e-mail automático quando houver alerta, adicione esta linha no final do script:

if [ $days_left -le $DAYS_THRESHOLD ]; then
  echo "ALERTA: $domain expira em $days_left dias!" | mail -s "SSL Expirando!" seuemail@seudominio.com.br
fi

Substitua seuemail@seudominio.com.br pelo seu e-mail de contato.

Imagens de apoio

Para te ajudar a se localizar no cPanel, aqui estão algumas telas que mostram onde encontrar ferramentas úteis:

Tela inicial do cPanel com os grupos de ferramentas

Se precisar de ajuda com o SSH ou o acesso ao terminal, basta acessar o Terminal no cPanel (dentro da seção "Terminal" ou "SSH Access").

Resumo do guia

  • Use o SSH para acessar o servidor.
  • Crie um script com nano.
  • Adicione seus domínios e defina o limite de dias (ex: 7).
  • Dê permissão com chmod +x.
  • Execute com ./check-ssl-expiration.sh.
  • Automatize com crontab -e.
  • Receba alertas por e-mail!

Se você seguir esses passos, seu site ficará sempre seguro, com certificados atualizados — sem surpresas! 💚

Se tiver dúvidas, é só chamar o Sensei da GeHost no suporte. Estamos aqui para te ajudar, sempre. 🌟

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.