O monitoramento de SSL vai além de verificar datas de expiração. Uma configuração de monitoramento completa observa: certificados expirando, alterações de configuração, emissão não autorizada de certificados e indisponibilidade causada por erros de SSL.
Com a validade dos certificados caindo para 47 dias até 2029, o monitoramento proativo se torna essencial — uma renovação perdida tira seu site do ar.
O que monitorar
| O quê | Por quê | Com que frequência |
|---|---|---|
| Expiração do certificado | Certificado expirado = site fora do ar | Diariamente |
| Cadeia do certificado | Cadeia incompleta = alguns dispositivos falham | Semanalmente |
| Versão TLS | Versões antigas de TLS são desativadas pelos navegadores | Mensalmente |
| Logs CT | Detectar certificados não autorizados para seu domínio | Contínuo |
| OCSP stapling | Falha no stapling degrada o desempenho | Semanalmente |
| Header HSTS | HSTS ausente = vulnerável a downgrade | Mensalmente |
Opções gratuitas de monitoramento
1. Script cron (auto-hospedado)
#!/bin/bash
# /usr/local/bin/ssl-monitor.sh
DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
ALERT_EMAIL="admin@example.com"
for domain in $DOMAINS; do
expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
if [ -z "$expiry" ]; then
echo "ERROR: Can't connect to $domain:443" | mail -s "SSL Monitor: $domain unreachable" $ALERT_EMAIL
continue
fi
expiry_epoch=$(date -d "$expiry" +%s 2>/dev/null)
now_epoch=$(date +%s)
days_left=$(( (expiry_epoch - now_epoch) / 86400 ))
if [ "$days_left" -lt "$WARN_DAYS" ]; then
echo "$domain certificate expires in $days_left days ($expiry)" | mail -s "SSL Expiry Warning: $domain" $ALERT_EMAIL
fi
done
# Adicionar ao crontab — executar diariamente às 9h
0 9 * * * /usr/local/bin/ssl-monitor.sh
2. UptimeRobot (SaaS — plano gratuito)
- Cadastre-se no UptimeRobot
- Adicione um monitor → Tipo: HTTPS
- Insira a URL do seu domínio
- Configure alerta de expiração SSL: 30 dias antes da expiração
- Configure alertas: email, Slack, webhook
O UptimeRobot verifica a cada 5 minutos e alerta tanto sobre indisponibilidade quanto sobre expiração de certificado.
3. Monitoramento de Certificate Transparency
Monitore os logs CT para certificados não autorizados emitidos para seu domínio:
| Serviço | Como | Custo |
|---|---|---|
| Cert Spotter (SSLMate) | Alertas por email sobre novos certificados | Plano gratuito |
| crt.sh | Busca manual | Gratuito |
| Facebook CT Monitor | Ferramenta de monitoramento do Facebook | Gratuito |
Ferramentas de monitoramento pagas
| Ferramenta | Recursos | Preço |
|---|---|---|
| Better Uptime | SSL + uptime + incidentes | Plano gratuito / $20+/mês |
| Datadog | Monitoramento completo de infraestrutura com verificações SSL | $15+/host/mês |
| Pingdom | SSL + uptime + desempenho | $10+/mês |
| StatusCake | Monitoramento SSL + alertas | Plano gratuito / $20+/mês |
Exemplo de configuração completa de monitoramento
Para um site em produção, combine múltiplas camadas:
Camada 1: Renovação automática do Certbot (previne expiração)
Camada 2: Script cron (detecta falhas na renovação — email diário)
Camada 3: UptimeRobot (detecta erros SSL — verificações a cada 5 min)
Camada 4: Monitoramento CT (detecta certificados não autorizados — contínuo)
Isso oferece defesa em profundidade — nenhum ponto único de falha.
Monitoramento com GetHTTPS
O GetHTTPS não inclui monitoramento integrado (é uma ferramenta de emissão de certificados). Mas seu fluxo de trabalho deve ser:
- Emitir certificado com GetHTTPS
- Configurar lembretes de renovação — alerta no calendário no dia 60 de 90
- Adicionar monitoramento SSL — script cron ou ferramenta SaaS como backup
- Considerar Certbot para renovação automática em produção
Perguntas frequentes
Qual é o monitoramento mínimo que devo ter?
No mínimo: um lembrete no calendário para renovação do certificado (dia 60 de 90) É uma verificação automatizada (script cron ou UptimeRobot). O calendário cobre renovações normais; a verificação automatizada detecta falhas.
Como monitoro múltiplos domínios?
O script cron acima lida com múltiplos domínios em um loop. Ferramentas SaaS como UptimeRobot permitem adicionar múltiplos monitores — um por domínio.
Devo monitorar certificados de staging/desenvolvimento também?
Sim, se forem certificados Let’s Encrypt que expiram. Um certificado de staging expirado bloqueia QA e desenvolvimento. No mínimo, defina um lembrete no calendário.
E quanto a monitorar a cadeia de certificados, não apenas a expiração?
A API do SSL Labs fornece verificação automatizada de cadeia. Para uma verificação manual rápida:
echo | openssl s_client -connect example.com:443 2>/dev/null | grep "Verify return code"
Adicione isso ao seu script cron para monitoramento de cadeia.