Zum Inhalt springen

Zertifikate einer Domain

Welche TLS-Zertifikate für diese Domain in den öffentlichen Transparenzprotokollen stehen — und welche Namen darin vorkommen.

Beispiele

Gesucht wird die Domain samt allem, was darunter liegt. Eine ganze Adresse (https://…/pfad) oder eine E-Mail-Adresse darfst du auch einwerfen — daraus wird die Domain gelesen.

Was das Transparenzprotokoll ist — und was es nicht ist

Warum es das Protokoll gibt

Früher konnte eine Zertifizierungsstelle ein Zertifikat für deine Domain ausstellen, ohne dass du davon je erfahren hättest. Genau das ist mehrfach passiert. 2013 entstand als Antwort Certificate Transparency: öffentliche Protokolle, an die nur angehängt werden kann und aus denen nichts verschwindet. Verbindlich wurde es schrittweise — Chrome verlangt seit dem 30. April 2018 für neu ausgestellte, öffentlich vertraute Zertifikate einen Nachweis aus solchen Protokollen, andere Browser zogen nach. Alles, was davor ausgestellt wurde, steht deshalb nur teilweise darin.

Was das für dich bedeutet

Du kannst jederzeit nachsehen, was auf deinen Namen ausgestellt wurde. Alle anderen können das auch. Deshalb ist die Namensliste hier immer zweierlei: deine Bestandsaufnahme und die Aufklärungsarbeit, die ein Angreifer sich sparen kann.

Was du damit anfängst

Zwei Dinge. Erstens: Steht ein Aussteller in der Liste, den du nicht beauftragt hast, geh dem nach. Zweitens: Namen, für die es nur abgelaufene Zertifikate gibt, sind meist vergessene Systeme — die gehören abgeschaltet oder gepflegt.

Selbst nachprüfen

Dieselbe Prüfung kannst du im Terminal machen — unter Linux und macOS mit diesen Befehlen:

Alle Zertifikate der Domain aus crt.sh, auch abgelaufene. Antwortet bei großen Domains oft mit 503 oder einer HTML-Fehlerseite — dann ist das kein „keine Zertifikate", sondern ein Ausfall.braucht jq
curl -s "https://crt.sh/?q=example.com&output=json" | jq -r '.[] | "\(.not_after[0:10]) \(.issuer_name) \(.name_value)"' | sort -u
Alle Namen aus den noch gültigen Zertifikaten — die schnelle Bestandsliste. Die freie Stufe kennt keine abgelaufenen Zertifikate und liefert höchstens 100 Einträge je Antwort.braucht jq
curl -s "https://api.certspotter.com/v1/issuances?domain=example.com&include_subdomains=true&expand=dns_names&expand=issuer" | jq -r '.[].dns_names[]' | sort -u
Welche Zertifizierungsstellen ausstellen dürfen. Kommt am gefragten Namen nichts, gilt die Regel der übergeordneten Domain — eine CA geht genau so vor. Erst wenn bis zur Wurzel nichts steht, darf jede ausstellen.
dig +short CAA example.com || dig +short CAA $(echo example.com | cut -d. -f2-)

Die Befehle sind bereits mit deiner Eingabe gefüllt. Weicht ein Ergebnis von dem hier ab: Beide Wege fragen dieselbe öffentliche Datenquelle, aber nicht im selben Moment. Deren Bestand ändert sich laufend und ist teils Stunden alt — Abweichungen sind meist ein Zeitunterschied, kein Widerspruch.