Pular para o conteúdo
ecdsa.com
rustls 0.23 (via reqwest, ureq, hyper-rustls)Rust

Mensagem de erro

invalid peer certificate: certificate expired: verification time

Forma completa: “invalid peer certificate: certificate expired: verification time <unix> (UNIX), but certificate is not valid after <unix> (<n> seconds ago)”. Versões anteriores do rustls imprimiam só o nome da variante (“invalid peer certificate: Expired”). Certificados que ainda não são válidos produzem uma variante separada, “not valid yet”.

rustls 0.23 (via reqwest, ureq, hyper-rustls) — CertificateError::ExpiredContext

O que significa

O rustls verificou a cadeia, mas um certificado dela já passou da data notAfter no momento da verificação. O rustls 0.23 informa os dois instantes como timestamps Unix e há quantos segundos o certificado expirou, o que mostra na hora se o errado é o certificado ou o relógio.

Por que acontece

Como corrigir

  1. 1.

    Converter os timestamps

    date -u -d @<seconds> converte os dois valores em horários UTC legíveis.

    bash
    # The message gives both instants as Unix seconds
    date -u -d @1743465600      # certificate's notAfter
    date -u                     # this machine's time
  2. 2.

    Renovar e implantar de novo

    Renove o certificado do servidor, recarregue o serviço e confirme a nova data de término pelo lado da rede.

    bash
    echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null | openssl x509 -noout -enddate
    sudo certbot renew && sudo systemctl reload nginx

Erros relacionados

Ver toda a base de erros de assinatura