Pular para o conteúdo
ecdsa.com
Go crypto/x509Go

Mensagem de erro

x509: certificate has expired or is not yet valid: current time 2026-08-20T15:47:41+03:00 is after 2026-08-19T12:47:41Z

Os dois timestamps são preenchidos a cada falha: o relógio de quem verifica e o limite do certificado. “is after” significa expirado; “is before” significa ainda não válido.

Go crypto/x509 — CertificateInvalidError (Expired)

O que significa

O momento da verificação fica fora da janela [NotBefore, NotAfter] do certificado. O Go informa os dois lados da comparação na mensagem, o que faz deste um dos poucos erros que trazem o próprio diagnóstico: leia os dois timestamps e veja qual está errado — o do certificado ou o do relógio.

Por que acontece

Como corrigir

  1. 1.

    Ler as datas reais do certificado servido

    Confirme qual certificado o endpoint serve neste momento — depois de uma renovação, “expired” muitas vezes significa “o certificado novo existe, mas não está sendo servido”. Recarregue ou reinicie o proxy que faz a terminação TLS se as datas no disco e na rede forem diferentes.

    bash
    echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
      | openssl x509 -noout -dates
    # notBefore=...  notAfter=...
  2. 2.

    Corrigir e monitorar a sincronização de horário

    Nos casos de “is before”, acerte o relógio e mantenha-o certo; a validação de certificados só é tão confiável quanto a hora local.

    bash
    timedatectl status            # NTP active?
    sudo timedatectl set-ntp true
  3. 3.

    Automatizar a renovação e alertar sobre a vida útil restante

    Renove aos 2/3 da vida útil (o padrão do certbot) e monitore a expiração de fora do host. Nosso health check de assinaturas do domínio (Signature Health) avalia exatamente isso — cadeia, datas e as novas regras de vida útil reduzida — com alertas de expiração gratuitos.

Erros relacionados

Ver toda a base de erros de assinatura