Certificate-Transparency-Suche

Jedes öffentlich vertrauenswürdige Zertifikat, das je für eine Domain ausgestellt wurde, wird in öffentliche Logs geschrieben — diese Suche liest sie für Sie zurück. Geben Sie eine Domain ein und sehen Sie, was crt.sh für sie und ihre Subdomains aufgezeichnet hat: wer jedes Zertifikat ausgestellt hat, welche Namen es abdeckt und wann es gültig war. Es ist das Audit, das die Zertifikate findet, die Sie vergessen haben — und die, um die Sie nie gebeten haben.

Soll das laufend überwacht werden? Kostenlos mit myeventwatch überwachen — Ablauf- und Ausfallwarnungen, keine Karte nötig.

Was die Suche misst

Certificate Transparency verwandelt die Zertifikatsausstellung von einer privaten Transaktion in einen öffentlichen Eintrag. Wenn eine Zertifizierungsstelle ein Zertifikat für einen öffentlichen Namen ausstellt, übermittelt sie das Zertifikat an mehrere CT-Logs, und Browser verweigern Zertifikate, die nicht protokolliert sind. Der Nebeneffekt ist ein Geschenk an Verteidiger: Die vollständige Ausstellungshistorie jeder Domain liegt öffentlich bereit und wartet darauf, gelesen zu werden. Die Seite ruft GET /api/check/cert-search auf dem Server von sysosx auf, der eine einzige Anfrage an crt.sh — den öffentlichen Index dieser Logs — für die Domain und alles darunter stellt, die Antwort normalisiert, sie neueste zuerst sortiert und sie eine Stunde zwischenspeichert. Bis zu 200 Einträge werden gezeigt; eine Domain mit mehr erhält einen Kürzungshinweis und die wahre Gesamtzahl, nie einen stillen Schnitt.

Lesen Sie das Ergebnis als Inventar, nicht als Urteil. Die produktive Frage zu jedem Eintrag lautet „welches unserer Systeme hat das angefordert?“ Moderne Bestände stellen Zertifikate von mehr Orten aus, als ihre Eigentümer ahnen: der Webhost, das CDN, der Mailanbieter, der Site-Builder des Marketingteams, ein Kubernetes-Ingress auf einem Cluster, den jemand letztes Jahr aufgesetzt hat. Die meisten davon sind legitim, und mehrere werden für Sie trotzdem neu sein — was selbst nützlich ist, denn ein Zertifikatsinventar, das Sie nie gesehen haben, kann Teil keines Erneuerungs- oder Widerrufsplans sein. Die Einträge, die am meisten zählen, sind die, die niemand einem System zuordnen kann: ein unbekannter Aussteller, eine unbekannte Subdomain, ein Ausstellungsdatum ohne Bereitstellung in der Nähe. Sie sind selten, und sie sind genau das, wofür CT entworfen wurde, sie ans Licht zu bringen.

Drei Werkzeuge, drei Fragen

Diese Suche beantwortet „was wurde je ausgestellt?“. Der SSL-Prüfer beantwortet „was präsentiert der Server gerade jetzt?“ mit einem Live-Handshake — der einzige Weg zu wissen, was Besucher tatsächlich bekommen. Der SSL-Bewerter beantwortet „wie gut ist das TLS dieses Servers konfiguriert?“ — Protokollversionen, Forward Secrecy, HSTS, mit einer Buchstabennote. Und der browserseitige SSL-Zertifikatsparser liest eine Zertifikatsdatei, die Sie bereits besitzen. Eine Erneuerung, die in den Logs existiert, aber nie bereitgestellt wurde, taucht hier auf und nicht im Prüfer; ein Server, der ein altes Zertifikat präsentiert, taucht im Prüfer auf und nicht hier. Wenn sie sich widersprechen, sagt jeder seine eigene Wahrheit — verwenden Sie den, der zu Ihrer Frage passt.

Häufige Fragen

Was ist Certificate Transparency, in einem Absatz?

Seit 2018 verlangen Browser, dass öffentlich vertrauenswürdige Zertifikate in Certificate-Transparency-(CT-)Logs veröffentlicht werden — öffentlichen, nur anhängbaren Listen jedes Zertifikats, das eine CA ausstellt. Die Logs existieren, damit sich Fehlausstellungen nicht verstecken können: Wenn ein Zertifikat für Ihre Domain auftaucht, um das Sie nie gebeten haben, ist es für jeden sichtbar, der hinschaut, Sie eingeschlossen. Dieses Werkzeug schaut in Ihrem Namen nach, über crt.sh, den bekanntesten öffentlichen Index dieser Logs.

Wie unterscheidet sich das vom SSL-Prüfer und vom SSL-Bewerter?

Drei verschiedene Fragen. Der SSL-Prüfer fragt, welches Zertifikat ein Server gerade jetzt in einem Live-Handshake präsentiert. Der SSL-Bewerter prüft, wie das TLS dieses Servers konfiguriert ist — Protokolle, Cipher, HSTS — und benotet es. Diese Suche fragt, was laut den öffentlichen Logs je für die Domain ausgestellt wurde. Sie kann Zertifikate ans Licht bringen, die die Live-Werkzeuge nicht können: vergessene Staging-Zertifikate, Zertifikate von CAs, die Ihre Organisation nicht mehr nutzt, und — der Fall, für den CT gebaut wurde — Zertifikate, um die niemand in Ihrem Team überhaupt gebeten hat.

Warum läuft das auf dem Server statt in meinem Browser?

Der browserseitige Zertifikatsparser auf dieser Site bietet ebenfalls eine crt.sh-Abfrage an und sagt offen, dass ihr Funktionieren von den Cross-Origin-Headern von crt.sh abhängt — ein Browser kann nur lesen, was ein Drittdienst ihm zu lesen erlaubt. Eine serverseitige Anfrage muss keine Cross-Origin-Richtlinie erfüllen, also funktioniert die Suche hier jedes Mal gleich. Der Tausch ist der übliche: Die von Ihnen eingegebene Domain wird vom Server von sysosx an crt.sh gesendet (und die Antwort wird eine Stunde zwischengespeichert), was die Seite ausspricht, statt es zu verstecken.

Ich sehe Zertifikate, die ich nicht kenne. Soll ich in Panik geraten?

Noch nicht. Die meisten unbekannten Einträge sind alltäglich: ein Hosting-Anbieter oder ein CDN, der in Ihrem Namen ausstellt (Cloudflare, ein Load Balancer, ein Website-Builder), eine Zertifizierungsstelle, von der Ihre Organisation weggewechselt ist, oder ein automatisches Erneuerungssystem, das jemand eingerichtet und vergessen hat. Gehen Sie die Liste nach Aussteller und Datum durch und ordnen Sie jeden Eintrag einem System zu, das Sie betreiben, oder einem Anbieter, den Sie bezahlen. Panik — nun, dringende Untersuchung — gilt für den Rest: ein Zertifikat von einer CA, die niemand nutzt, das Namen abdeckt, die niemand betreibt, ausgestellt zu einer Zeit, als niemand etwas bereitgestellt hat. Das ist entweder eine vergessene Ecke Ihres eigenen Bestands, die es wert ist, dokumentiert zu werden, oder die Fehlausstellung, die CT fangen soll, und ihr sollte nachgegangen werden, bis sie erklärt ist.

Warum wird das Ergebnis eine Stunde zwischengespeichert, und warum kann die Suche fehlschlagen?

Weil crt.sh ein kostenloser öffentlicher Dienst ist, unter Last berüchtigt langsam, und sich die Zertifikatshistorie über Tage statt Minuten ändert — eine Stunde Zwischenspeicherung kostet nichts an Aktualität und hält dieses Werkzeug davon ab, zur Last von crt.sh beizutragen: höchstens eine Upstream-Abfrage pro Domain und Stunde. Wenn crt.sh ausgefallen oder zu langsam ist, sagt die Suche das mit einem ausdrücklichen Fehler, statt eine leere Liste zurückzugeben, denn „keine Zertifikate gefunden“ und „die Log-Suche ist fehlgeschlagen“ sind entgegengesetzte Schlüsse, und nur einer von ihnen ist wahr.