Server at DevOps 100 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.