Fehlermeldung
state=error: certificate verify failed (certificate has expired)
Auch ausgegeben als
- OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peeraddr=127.0.0.1:8443 state=error: certificate verify failed (certificate has expired)
Vollständige Meldung: „SSL_connect returned=1 errno=0 peeraddr=<ip>:<port> state=error: certificate verify failed (certificate has expired)“. Zertifikate, die noch nicht gültig sind, erzeugen „(certificate is not yet valid)“.
Ruby openssl (Net::HTTP, Faraday, RubyGems) — OpenSSL::SSL::SSLError from SSL_connect
Was der Fehler bedeutet
OpenSSL hat in der Kette ein Zertifikat gefunden, dessen Gültigkeitszeitraum vor der aktuellen Uhrzeit des Rechners endete, auf dem Ruby läuft. Meist wurde das Zertifikat des Servers nicht erneuert oder die Erneuerung nicht ausgerollt; auf alten Systemen kann ein veraltetes CA-Bundle dazu führen, dass OpenSSL den Pfad über ein abgelaufenes Root-Zertifikat aufbaut.
Warum der Fehler auftritt
Das Zertifikat des Servers ist abgelaufen
häufigDie Erneuerung ist fehlgeschlagen, oder der Dienst wurde nach der Erneuerung nicht neu geladen.
Ein veraltetes CA-Bundle auf einem alten System
gelegentlichLanglebige Images und Server, deren Paket ca-certificates nie aktualisiert wurde, kennen möglicherweise nur abgelaufene Versionen öffentlicher Root-Zertifikate.
Die Systemuhr geht falsch
gelegentlichGeht die Systemuhr vor, wirken gültige Zertifikate abgelaufen.
So behebst du den Fehler
- 1.
Enddatum des ausgelieferten Zertifikats prüfen
Liegt es in der Vergangenheit, erneuere das Zertifikat; passt es, sieh dir Bundle und Uhr des Clients an.
bash echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null \ | openssl x509 -noout -subject -enddate - 2.
CA-Bundle des Clients aktualisieren
Aktualisierst du ca-certificates, behebt das den Fehler bei Clients, die Pfade über ausgemusterte Root-Zertifikate aufbauen.
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.
Zertifikat erneuern und Server neu laden
Erneuere das Zertifikat und lade den TLS-Terminator neu; prüfe das Ergebnis von der Netzwerkseite aus.
bash sudo certbot renew && sudo systemctl reload nginx
Verwandte Fehler
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)