Todos os guias de implantacao Implantacao

Como Verificar a Expiração do Certificado SSL

Um certificado SSL expirado faz com que os navegadores mostrem um aviso de segurança em tela cheia, impedindo os visitantes de acessar seu site. Veja como verificar quando seu certificado expira e configurar monitoramento.

Verificar pelo navegador

  1. Visite seu site com https://
  2. Clique no ícone de cadeado na barra de endereços
  3. Clique em “Certificado” ou “A conexão é segura” → “O certificado é válido”
  4. Procure a data “Válido até” ou “Expira em”

Verificar com OpenSSL (linha de comando)

Verificação remota (de qualquer máquina)

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate

Saída: notAfter=Aug 5 12:00:00 2026 GMT

Verificação de arquivo local

openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem

Verificar todos os detalhes de uma vez

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Verificar com um script de uma linha

Verificar se um certificado expira dentro de 30 dias:

if openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -checkend 2592000 > /dev/null 2>&1; then
  echo "Certificate is valid for at least 30 more days"
else
  echo "WARNING: Certificate expires within 30 days!"
fi

Verificar múltiplos domínios de uma vez

Se você gerencia vários domínios, verifique todos em um loop:

for domain in example.com www.example.com api.example.com; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  echo "$domain — expires: $expiry"
done

Monitoramento automatizado com cron

Crie um job cron diário que envia um email quando um certificado está a 30 dias da expiração:

#!/bin/bash
# Save as /usr/local/bin/check-ssl-expiry.sh

DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
WARN_SECS=$((WARN_DAYS * 86400))

for domain in $DOMAINS; do
  if ! echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | \
    openssl x509 -noout -checkend $WARN_SECS > /dev/null 2>&1; then
    echo "WARNING: $domain certificate expires within $WARN_DAYS days" | \
      mail -s "SSL Expiry Warning: $domain" admin@example.com
  fi
done

Adicione ao crontab: 0 9 * * * /usr/local/bin/check-ssl-expiry.sh

Configurar serviços de monitoramento

Para uma abordagem mais robusta, use um serviço de monitoramento:

MétodoComoCustoOpções de alerta
Lembrete no calendárioConfigure para 60 dias após a emissãoGratuitoManual
Script cronExecute o script de verificação diariamenteGratuitoEmail
UptimeRobotAdicione monitor SSL, defina limite de alertaPlano gratuitoEmail, Slack, webhook
Better UptimeMonitoramento SSL com gerenciamento de incidentesPlano gratuitoEmail, SMS, Slack
Renovação automática do Certbotcertbot renew via systemd timerGratuitoPrevine a expiração completamente

Para certificados de 90 dias do Let’s Encrypt, renove no dia 60 (margem de 30 dias).

Quais detalhes do certificado devo verificar?

Além da data de expiração, verifique periodicamente:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -E 'Subject:|Issuer:|Not After|DNS:'

Isso mostra:

  • Subject/SAN — o certificado cobre os domínios corretos
  • Issuer — emitido pela CA esperada (ex.: Let’s Encrypt)
  • Not After — data de expiração
  • DNS names — todos os nomes de domínio no campo SAN

Perguntas frequentes

O que acontece quando um certificado expira?

Os navegadores mostram um aviso em tela cheia como “Sua conexão não é particular” (Chrome) ou “Aviso: Risco potencial de segurança à frente” (Firefox). A maioria dos visitantes sairá imediatamente. Os mecanismos de busca também podem rebaixar ou desindexar suas páginas até que o certificado seja renovado.

Com que frequência devo verificar?

Se você tem renovação automática (Certbot), verifique mensalmente como rede de segurança. Se você renova manualmente (GetHTTPS), verifique no dia 50 e configure um lembrete firme no dia 60. Com a validade de 47 dias chegando em 2029, o monitoramento se torna ainda mais crítico.

Posso verificar a expiração sem acesso à linha de comando?

Sim. Ferramentas online como SSL Labs Server Test e SSL Shopper’s SSL Checker mostram detalhes do certificado incluindo datas de expiração — basta inserir seu domínio. O DevTools do navegador também mostra (ícone de cadeado → Detalhes do certificado).

E se meu certificado já expirou?

Renove imediatamente. Visite GetHTTPS para obter um novo certificado, substitua os arquivos no seu servidor e recarregue o servidor web. O processo leva 5 minutos. Não há penalidade por deixar um certificado expirar — basta renovar e instalar o novo.

Posso monitorar múltiplos domínios a partir de um único script?

Sim. Aqui está um script que verifica todos os seus domínios e mostra os dias restantes:

#!/bin/bash
for domain in example.com www.example.com api.example.com; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
  days_left=$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 ))
  if [ "$days_left" -lt 30 ]; then
    echo "WARNING $domain: $days_left days left"
  else
    echo "OK $domain: $days_left days left"
  fi
done

Nota: A sintaxe date -d é específica do Linux. No macOS, use date -j -f "%b %d %H:%M:%S %Y %Z".

Artigos relacionados

Primeiros passos 2026-05-07
Como renovar um certificado Let's Encrypt
Os certificados Let's Encrypt expiram a cada 90 dias. Aprenda como renovar com GetHTTPS (manual) ou Certbot (automatico), e prepare-se para a validade de 47 dias.
SSL e certificados 2026-05-07
Validade do Certificado SSL: A Mudança para 47 Dias Explicada
O CA/Browser Forum votou para reduzir a validade dos certificados SSL para 47 dias até 2029. Aprenda o cronograma, o que isso significa para seu site e como se preparar.
Implantacao 2026-05-08
Como Instalar um Certificado SSL no Nginx
Guia passo a passo para instalar um certificado SSL no Nginx. Abrange upload de arquivos, configuração completa do bloco server, boas práticas de TLS, HTTP/2, HSTS, configuração de redirecionamento, testes e solução de 6 erros comuns.
Obtenha um certificado SSL gratuito no seu navegador
Sem instalacao, sem conta. Sua chave privada nunca sai do seu dispositivo.
Obter seu certificado