tls.cert.invalid_chain
Zertifikatskette ungültig
Was wir prüfen
Wir validieren die vollständige Zertifikatskette vom Blattzertifikat über alle Zwischenzertifikate bis zu einer vertrauenswürdigen Root-CA. Die Kette muss vollständig sein, korrekt geordnet und bei einer Root enden, die unser Trust-Store anerkennt.
Die Kettenvalidierung ist unabhängig vom Hostname-Abgleich — ein Zertifikat kann eine gültige Kette haben und trotzdem an der Hostname-Prüfung scheitern, und umgekehrt.
Was dieses Ergebnis bedeutet
Die präsentierte Zertifikatskette ließ sich nicht validieren. Häufige Ursachen:
- Fehlende Zwischenzertifikate. Der Server sendet nur das Blattzertifikat, ohne die Zwischen-CA-Zertifikate, die es mit einer vertrauenswürdigen Root verbinden.
- Nicht vertrauenswürdige Root. Die Kette endet bei einer Root-CA, die unser Trust-Store nicht kennt.
- Abgelaufenes Zwischenzertifikat. Ein Glied der Kette ist abgelaufen — der Vertrauenspfad reißt.
- Falsche Reihenfolge. Die Zwischenzertifikate kommen in der falschen Reihenfolge.
Warum das wichtig ist
- Zustellungsfehler. Absender, die Ketten prüfen (MTA-STS
enforce, DANE), verweigern die Zustellung. Die Kette ist der Beleg, dass eine vertrauenswürdige Stelle für den Server bürgt. - Sofortiges F. Eine ungültige Kette zählt zu den schwersten TLS-Befunden und führt automatisch zum F in der TLS-Kategorie.
- Meist Fehlkonfiguration, kein fehlendes Zertifikat. Das Blattzertifikat selbst ist oft völlig in Ordnung — der Server sendet nur die Kette nicht mit.
So behebst du das
Finde heraus, was fehlt. Prüfe die aktuelle Kette:
openssl s_client -starttls smtp -connect mail.example.com:25 \ -servername mail.example.com -showcerts 2>/dev/null | \ grep -E 'subject=|issuer='Der Aussteller jedes Zertifikats muss zum Inhaber des nächsten passen. Eine Lücke heißt: Zwischenzertifikat fehlt.
Besorge die vollständige Kette. Die CA liefert die Zwischenzertifikate mit. Bei Let's Encrypt legt certbot die komplette Kette in
fullchain.pemab — genau diese Datei gehört in die Konfiguration, nichtcert.pem(nur Blattzertifikat).Konfiguriere den Server auf die vollständige Kette. Für Postfix:
# /etc/postfix/main.cf — fullchain verwenden, nicht nur das Blattzertifikat smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pemNeu laden und prüfen:
systemctl reload postfix openssl s_client -starttls smtp -connect mail.example.com:25 \ -servername mail.example.com 2>/dev/nullIn der Ausgabe muss
Verify return code: 0 (ok)stehen.
So fließt es in die Bewertung ein
Eine ungültige Zertifikatskette kostet 25 Punkte und löst ein sofortiges F in der TLS-Kategorie aus. Das vollständige Scoring-Modell steht in der Bewertungsmethodik.
Evidenzbeispiel
$ openssl s_client -starttls smtp -connect mail.example.com:25 \
-servername mail.example.com 2>/dev/null
...
verify error:num=20:unable to get local issuer certificate
Verify return code: 21 (unable to verify the first certificate)