Message d’erreur
state=error: certificate verify failed (certificate has expired)
Également affiché sous la forme
- OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peeraddr=127.0.0.1:8443 state=error: certificate verify failed (certificate has expired)
Message complet : « SSL_connect returned=1 errno=0 peeraddr=<ip>:<port> state=error: certificate verify failed (certificate has expired) ». Les certificats qui ne sont pas encore valides produisent « (certificate is not yet valid) ».
Ruby openssl (Net::HTTP, Faraday, RubyGems) — OpenSSL::SSL::SSLError from SSL_connect
Ce que cela signifie
OpenSSL a trouvé dans la chaîne un certificat dont la période de validité a pris fin avant l’heure actuelle de la machine qui exécute Ruby. Le plus souvent, le certificat du serveur n’a pas été renouvelé ou le renouvellement n’a pas été déployé ; sur les systèmes anciens, un fichier d’AC obsolète peut amener OpenSSL à construire le chemin via une racine expirée.
Pourquoi cela se produit
Le certificat du serveur a expiré
fréquenteLe renouvellement a échoué, ou le service n’a pas été rechargé après le renouvellement.
Un fichier d’AC obsolète sur un système ancien
occasionnelleLes images et les serveurs à longue durée de vie dont le paquet ca-certificates n’a jamais été mis à jour peuvent ne connaître que des versions expirées des racines publiques.
L’horloge du système est fausse
occasionnelleUne horloge réglée dans le futur fait paraître expirés des certificats valides.
Comment corriger l’erreur
- 1.
Vérifier la date de fin du certificat servi
Si elle est passée, renouvelez le certificat ; si elle est correcte, examinez le fichier d’AC et l’horloge du client.
bash echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null \ | openssl x509 -noout -subject -enddate - 2.
Actualiser le fichier d’AC du client
Mettre à jour ca-certificates corrige les clients qui construisent des chemins via des racines retirées.
bash # Old images: refresh the CA bundle Ruby's OpenSSL uses apt-get update && apt-get install --only-upgrade -y ca-certificates ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE' - 3.
Renouveler et recharger le serveur
Renouvelez le certificat et rechargez le terminateur TLS ; vérifiez le résultat côté réseau.
bash sudo certbot renew && sudo systemctl reload nginx
Erreurs associées
curl: (60) SSL certificate problem: certificate has expiredcurl (OpenSSL backend)x509: certificate has expired or is not yet valid: current time 2026-08-20T15:4…Go crypto/x509state=error: certificate verify failed (unable to get local issuer certificate)Ruby openssl (Net::HTTP, Faraday, HTTParty, RubyGems)