
Was ist eine SSL-Zertifikatskette? Erklärung & Funktion
Wer schon einmal einen Browser-Fehler à la „Zertifikatskette fehlt” gesehen hat, kennt das mulmige Gefühl: Die Verbindung soll sicher sein, zeigt aber genau das Gegenteil. Das Problem liegt fast immer in der SSL-Zertifikatskette – genauer gesagt, in deren unvollständiger Konfiguration. Dieser Beitrag zerlegt die Kette in ihre Einzelteile und zeigt, wie Sie mit OpenSSL Probleme finden, bevor Ihre Nutzer sie melden.
Typische Länge einer Kette: Root + 1-2 Intermediate · Zweck: Vertrauensnachweis · Häufige Ursache von Fehlern: Fehlende Intermediate · Überprüfungstool: OpenSSL · Vertrauensquelle: Root CAs
Kurzüberblick
- Serie von Zertifikaten von Server zu Root CA (Madmen Online Marketing)
- Jedes Zertifikat signiert das nächste in der Kette (SSL Dragon)
- Exakte Anzahl Intermediate je nach CA-Anbieter variiert
- Manche CAs nutzen mehrere Intermediate-Stufen
- CA-Wechsel erzeugen regelmäßig Kettenprobleme (Communardo Blog)
- Automatisierte CI/CD-Tests empfohlen (Xygeni Blog)
- SSL Labs für externe Überprüfung nutzen (Xygeni Blog)
Die folgende Tabelle fasst die Kernbegriffe und Standardwerte rund um die SSL-Zertifikatskette zusammen.
| Attribut | Wert |
|---|---|
| Definition | Liste von Zertifikaten für Vertrauensnachweis |
| Typische Glieder | 3 (Leaf + 1 Intermediate + Root) |
| Überprüfung | openssl s_client -connect hostname:443 (Thomas-Krenn Wiki) |
| Quelle | Certificate Authority |
Was ist eine Zertifikatskette in SSL?
Die SSL-Zertifikatskette ist eine geordnete Liste digitaler Zertifikate, die das Serverzertifikat mit einer vertrauenswürdigen Root-CA verbindet. Ohne diese Kette kann kein Browser die Verbindung als sicher einstufen – selbst wenn das eigentliche Serverzertifikat gültig ist. Die Kette besteht typischerweise aus drei Gliedern: dem End-Entity-Zertifikat (Leaf), einem oder mehreren Intermediate-Zertifikaten und der Root-CA.
Definition der Kette
Jedes Zertifikat in der Kette wurde von der nächsthöheren Instanz signiert. Der Browser prüft diese Signaturkette solange, bis er eine Stammzertifizierungsstelle erreicht, die im Trust Store des Betriebssystems oder Browsers verankert ist. Dieses Prinzip – genannt Chain of Trust – ermöglicht es, dass ein einzelnes Root-CA tausende Intermediate-CAs und damit Millionen Serverzertifikate beglaubigen kann, ohne selbst im täglichen Verkehr aufzutauchen.
Root- und Intermediate-Zertifikate
Die Root-CA ist das oberste Glied und wird von Zertifizierungsstellen äußerst sorgfältig verwaltet. Sie wird praktisch nie direkt ausgeliefert, sondern nur die Intermediate-Zertifikate, die von ihr abstammen. Ein CA-Wechsel – etwa bei der Erneuerung von Zertifikaten – kann dazu führen, dass die alte Intermediate fehlt und Nutzer plötzlich Fehlermeldungen sehen. Das erklärt, warum selbst etablierte Websites periodisch Kettenprobleme melden, wenn ihre CA Sub-CAs umstrukturiert.
Eine falsche Zertifikatskette führt zu Problemen wie unvollständiger Installation von Zwischenzertifikaten – und das erzeugt exakt jene Browserwarnungen, die Nutzer abschrecken und Ihre SEO-Bemühungen untergraben.
Wie funktionieren Zertifikatsketten?
Der Browser durchläuft beim Aufbau einer verschlüsselten Verbindung einen schrittweisen Validierungsprozess. Zuerst lädt er das Serverzertifikat, dann prüft er, wer es ausgestellt hat. Stimmt die Signatur des Intermediate-Zertifikats, folgt er der Kette weiter bis zur Root-CA. Jeder Schritt muss validieren, sonst bricht der Browser die Verbindung ab.
Validierungsprozess
Der Befehl openssl s_client -showcerts macht diesen Prozess transparent: Er zeigt die vollständige Kette vom Serverzertifikat bis zur Root-CA und markiert jeden Fehler mit einem numerischen Code. Fehler Nummer 20 – „unable to get local issuer certificate” – signalisiert, dass OpenSSL das signierende Zertifikat nicht finden konnte, meist weil die CA-Zertifikate im System fehlen.
Vertrauensaufbau
OpenSSL benötigt Zugriff auf vertrauenswürdige CA-Zertifikate, um die Verifikation durchzuführen. Das Betriebssystem führt eine Liste vertrauenswürdiger Stamm-CAs, die bei Bedarf aktualisiert wird. In Containern oder isolierten Umgebungen kann diese Liste veraltet sein – dann schlägt die Verifikation fehl, obwohl die Kette technisch korrekt ist.
OpenSSL s_client zeigt TLS-Handshake, Protokoll, Zertifikatskette und Validierungsfehler in einem einzigen Durchlauf. Das macht den Befehl zum Schweizer Messer für die Fehlersuche.
Was ist der Zweck der Zertifikatsverkettung?
Die Verkettung erfüllt zwei zentrale Aufgaben: Sie schafft Vertrauen und schützt vor Man-in-the-Middle-Angriffen. Ohne die Kette müsste jeder Server individuell als vertrauenswürdig markiert werden – ein logistischer Albtraum. Stattdessen vertrauen wir einer handvoll Root-CAs, die wiederum Intermediate-CAs autorisieren, Zertifikate für beliebige Domains auszustellen.
Sicherheit und Vertrauen
Die Vertrauenskette funktioniert asymmetrisch: Die Root-CA besitzt den geheimen Schlüssel, der nie das Rechenzentrum verlässt. Alle Signaturen darunter werden mit abgeleiteten Schlüsseln erstellt. Compromittiert ein Angreifer ein Intermediate-Zertifikat, kann er nur Zertifikate für Domains fälschen – die Root bleibt sicher, und die CA kann das kompromittierte Zertifikat widerrufen.
Vermeidung von Fehlern
Die häufigsten SSL-Fehler entstehen durch abgelaufene Zertifikate, falsche Ketten oder Domain-Mismatches. Eine vollständige Kette mit allen Intermediate-Zertifikaten eliminiert eine ganze Fehlerquelle. Tools wie SSL Labs SSL Test prüfen den Status, Ablaufdaten und die Kette Ihrer Domain und liefern eine Note für die Gesamtqualität.
Was ist der Unterschied zwischen einem Zertifikat und einer Zertifikatskette?
Ein einzelnes SSL-Zertifikat enthält nur das End-Entity-Zertifikat – also jenes für Ihre spezifische Domain. Es sagt dem Browser: „Ich bin example.com, ausgestellt von dieser CA.” Ohne die Kette weiß der Browser aber nicht, ob er dieser CA vertrauen soll. Die vollständige Zertifikatskette fügt die Intermediate-Zertifikate und die Root-CA hinzu, sodass der Browser die Vertrauensprüfung abschließen kann.
Einzelzertifikat
Das Einzelzertifikat allein ist für eine verschlüsselte Verbindung unzureichend. Es enthält Metadaten über Betreff, Aussteller und Gültigkeitszeitraum, aber keine Signaturkette. Ein Browser, der nur dieses Zertifikat erhält, kann nicht verifizieren, ob die ausstellende CA vertrauenswürdig ist.
Vollständige Kette
Die vollständige Kette enthält alle Glieder von der Domain bis zur Root-CA. In der Praxis bedeutet das: Serverzertifikat + Intermediate(s) + Root-CA. Die meisten Webserver konfigurieren dies als verkettete PEM-Datei oder als separate Direktive für Zwischenzertifikate. Bei Mail-Servern tauchen Kettenfehler besonders häufig auf, wenn Admins die Intermediate vergessen – etwa bei Sectigo-Zertifikaten.
openssl x509 zeigt Details eines einzelnen Zertifikats; s_client die volle Kette und den Handshake. Für die Fehlersuche sind beide Befehle nötig.
Wie sieht eine Zertifikatskette aus?
Eine Zertifikatskette folgt einem festen Schema: Ganz oben steht das Leaf-Zertifikat für Ihre Domain, darunter das Intermediate-Zertifikat der CA, und ganz unten die Root-CA. In der OpenSSL-Ausgabe erkennen Sie die Struktur an den Feldern „subject” und „issuer” – jedes Zertifikats „subject” ist das nächste Zertifikats „issuer”.
Beispielstruktur
Die typische Kette besteht aus drei Elementen: End-Entity (example.com → CN=example.com, O=Meine Firma), Intermediate (CN=Let’s Encrypt Authority X3, O=Let’s Encrypt), Root (CN=DST Root CA X3, O=Digital Signature Trust Co.). Bei modernen CAs wie Let’s Encrypt kann die Kette sogar auf zwei Glieder reduziert sein, wenn der Browser SECTIGO-interne Root-Zertifikate direkt kennt.
OpenSSL-Anzeige
Mit openssl s_client -showcerts -connect example.com:443 zeigt OpenSSL die gesamte Kette. Die Ausgabe beginnt mit dem Serverzertifikat und listet jedes weitere Zertifikat mit Trennmarkern auf. Danach prüfen Sie einzelne Zertifikate mit openssl x509 -in cert.pem -text -noout, um Ablaufdatum, Betreff und Aussteller zu kontrollieren.
Praktische Schritte: SSL-Zertifikatskette überprüfen und reparieren
Die folgenden Schritte decken die häufigsten Szenarien ab: Von der Diagnose mit OpenSSL über die Fehlerbehebung bis zur Nachrüstung fehlender Intermediate-Zertifikate.
Schritt 1: Kette und Gültigkeit prüfen
Verbinden Sie sich mit dem Zielserver und lassen Sie sich die Kette anzeigen:
openssl s_client -showcerts -connect example.com:443
Prüfen Sie dann die Gültigkeit des einzelnen Zertifikats:
openssl x509 -in certificate.crt -text -noout
Schritt 2: Private Key und CSR prüfen
Vor dem Deployment sollten Schlüssel und CSR verifiziert werden:
openssl rsa -in privateKey.key -check
openssl req -text -noout -verify -in CSR.csr
Die Hash-Übereinstimmung prüfen Sie mit:
openssl pkey -pubout -in privateKey.key | openssl sha256
Schritt 3: Fehlende Intermediate ergänzen
Laden Sie das fehlende Intermediate-Zertifikat von der Website Ihrer CA herunter. Bei Let’s Encrypt heißt die Datei häufig „ISRG Root X1″ oder „R3″. Fügen Sie es im Webserver zur Zertifikatskette hinzu – bei Apache über SSLCertificateChainFile, bei Nginx über ssl_trusted_certificate.
Schritt 4: Dateiberechtigungen setzen
Sichern Sie die Schlüsseldateien durch restriktive Berechtigungen:
chmod 644 *.crt && chmod 600 *.key
Schritt 5: Externe Überprüfung mit SSL Labs
Lassen Sie abschließend SSL Labs SSL Test die Konfiguration validieren. Das Tool simuliert verschiedene Browser und Clients und meldet selbst obscure Fehler, die in der lokalen OpenSSL-Prüfung nicht auftauchen.
Fehlende Zwischen-CA bei CA-Wechsel führt zu SSLHandShakeException. Prüfen Sie nach jedem CA-Wechsel sofort die Kette – Probleme fallen späteren Nutzern auf, nicht Ihnen.
Was funktioniert
- Kette verifiziert Vertrauen schrittweise
- OpenSSL s_client zeigt Probleme sofort
- SSL Labs validiert extern
Was Probleme verursacht
- Fehlende Intermediate-Zertifikate
- Verify error:num=20 (fehlende CA)
- Verify return code:21 (unvollständige Kette)
Warum Browser bei Kettenfehlern warnen
Browser wie Chrome, Firefox und Safari interpretieren Kettenfehler als Sicherheitsproblem und zeigen Warnungen, die Nutzer abschrecken. Diese Warnungen sind beabsichtigt: Eine unterbrochene Kette bedeutet, dass die Identität der Website nicht verifiziert werden kann – und das ist genau jener Zustand, den Man-in-the-Middle-Angreifer ausnutzen.
„Die Zertifikatskette ist nicht vollständig oder falsch konfiguriert.” — Madmen Online Marketing (SEO-Agentur für technische Fehleranalyse)
„Dieser bekannte Fehler hängt mit der Art und Weise zusammen, wie OpenSSL Zertifikate verifiziert.” — ServBay Support (Entwickler-Tooling für SSL-Konfiguration)
Verwandte Beiträge: SSL-Zertifikatskette erkennen und beheben · Extraktion der Zertifikatskette mit OpenSSL
chris-martens.com, sslmentor.de, xolphin.de, ask.linuxmuster.net, www-user.tu-chemnitz.de, docs.oracle.com
Eine vollständige SSL-Zertifikatskette bildet die Grundlage für HTTPS-Erklärung und Aktivierung, das Datenübertragungen verschlüsselt und Nutzervertrauen schafft.
Häufig gestellte Fragen
Was passiert, wenn die Zertifikatskette unvollständig ist?
Der Browser zeigt eine Sicherheitswarnung und verweigert die verschlüsselte Verbindung. Serverseitig meldet OpenSSL den Fehler „verify error:num=20″ oder „verify return code:21″. Die Verbindung ist technisch möglich, aber unsicher und wird von allen modernen Browsern blockiert.
Wie installiert man eine SSL-Zertifikatskette auf Apache?
Fügen Sie in der Apache-Konfiguration den Befehl SSLCertificateChainFile hinzu, der auf die Intermediate-Zertifikatsdatei zeigt. Bei neueren Apache-Versionen (2.4.8+) verwenden Sie stattdessen SSLCACertificatePath oder fügen die Intermediate direkt in die PEM-Datei des Serverzertifikats ein.
Unterscheidet sich TLS von SSL bei Ketten?
Nein – die Zertifikatskette funktioniert bei TLS 1.2 und TLS 1.3 identisch wie bei SSL. Der Unterschied liegt im Protokoll, nicht in der Zertifikatsstruktur. TLS hat lediglich ältere, unsichere Versionen abgelöst.
Wie generiert man eine Cert Chain mit OpenSSL?
Mit openssl s_client -showcerts -connect example.com:443 extrahieren Sie die Kette und können sie in PEM-Dateien speichern. Diese Dateien prüfen Sie einzeln mit openssl x509 -in cert.pem -text -noout.
Warum warnt der Browser bei Kettenfehlern?
Eine unterbrochene Kette bedeutet, dass die Identität der Website nicht verifizierbar ist. Angreifer könnten ein gefälschtes Zertifikat einschleusen. Browser blockieren solche Verbindungen, um Nutzer zu schützen.
Sind alle SSL-Zertifikate kettenbasiert?
Die meisten kommerziellen Zertifikate nutzen Intermediate-CAs. Self-Signed Zertifikate haben keine Kette zu einer vertrauenswürdigen CA und erzeugen immer Warnungen – sie eignen sich nur für interne Netzwerke oder Entwicklungsumgebungen.
Was ist eine Self-Signed Chain?
Eine Self-Signed Chain verwendet eigene Root- und Intermediate-Zertifikate, die nicht von einer öffentlich vertrauenswürdigen CA stammen. Lokale Zertifizierungsstellen mit OpenSSL erstellen: Konfiguration, Root- und Zwischen-CA – das ist der Weg dafür. Solche Ketten erzeugen in allen Browsern Warnungen.
Wie behebt man eine SSLHandShakeException?
Diese Exception in Java-Anwendungen entsteht meist durch fehlende Intermediate-Zertifikate. Installieren Sie das vollständige CA-Bundle auf dem Server, oder fügen Sie in Ihrer SSL-Konfiguration die vertrauenswürdigen Root-CAs explizit hinzu.
Für Serveradministratoren und Entwickler ist die SSL-Zertifikatskette kein Randthema – sie ist der Dreh- und Angelpunkt für sichere Verbindungen. Wer die Kette beherrscht, vermeidet die häufigsten TLS-Fehler und kann Probleme in Minuten statt Stunden diagnostizieren. Für alle, die HTTPS produktiv einsetzen: Halten Sie Ihre Intermediate-Zertifikate aktuell, und automatisieren Sie die Überprüfung in Ihren CI/CD-Pipelines. Die Werkzeuge sind da – es fehlt nur noch der konsequente Einsatz.