SSL-Zertifikat-Decoder — PEM-, CRT- und CSR-Dateien lesen
Füge ein PEM-Zertifikat, eine Kette oder eine CSR ein oder lade eine .crt-Datei hoch, um SANs, Ablaufdatum, Aussteller, Schlüsseltyp und Fingerabdrücke zu sehen. Im Browser dekodiert.
Nur Zertifikate und CSRs werden gebraucht. Füge nie einen privaten Schlüssel in eine Website ein; tust du es hier, wird er ignoriert.
Läuft komplett in deinem Browser. Zertifikate werden lokal dekodiert; nichts wird hochgeladen, und es gibt keine OCSP- oder CT-Abfragen. Alle kostenlosen Tools ansehen.
Ein Problem gefunden oder etwas, das besser sein könnte? Wir lesen jede Nachricht und beheben Fehler schnell.
Dieser kostenlose SSL-Zertifikat-Decoder liest ein X.509-Zertifikat und zeigt, was darin steht: die abgedeckten Domainnamen (Subject Alternative Names), wer es ausgestellt hat, wann es abläuft und wie viele Tage bleiben, Schlüsseltyp und -größe, die Erweiterungen und die SHA-256- und SHA-1-Fingerabdrücke. Füge PEM-Text, eine ganze Kette aus einer fullchain.pem oder eine Zertifikatsignierungsanforderung (CSR) ein, bevor du sie an eine CA schickst. Du kannst auch .crt-, .cer-, .der- und .pem-Dateien hochladen.
Das Dekodieren passiert in deinem Browser; nichts wird hochgeladen, und es werden keine Netzwerkabfragen gemacht. Das bedeutet auch, dass das Tool meldet, was im Zertifikat steht, nicht ob es vertrauenswürdig ist: Es prüft keine Signaturen, keinen Widerrufsstatus (OCSP oder CRL) und schlägt nicht in Certificate-Transparency-Logs nach. Bei einer Kette prüft es, ob der Ausstellername jedes Zertifikats zum Subjekt des nächsten passt, was den häufigsten Reihenfolgefehler aufdeckt. Es liest RSA-, ECDSA- und Ed25519-Zertifikate, anders als viele JavaScript-Decoder, die nur RSA beherrschen.
So funktioniert’s
- Füge ein Zertifikat ein, das mit -----BEGIN CERTIFICATE----- beginnt, mehrere davon oder eine CSR, die mit -----BEGIN CERTIFICATE REQUEST----- beginnt. Oder klicke auf Hochladen und wähle eine .crt-, .cer-, .der- oder .pem-Datei.
- Prüfe die farbige Statuszeile jedes Zertifikats: gültig mit verbleibenden Tagen, läuft bald ab (unter 30 Tagen), abgelaufen oder noch nicht gültig.
- Stell sicher, dass die Subject Alternative Names jeden Hostnamen enthalten, den das Zertifikat abdecken muss. Browser ignorieren den Common Name.
- Lies bei einer Kette das Feld Reihenfolge der Kette: Das Serverzertifikat sollte zuerst kommen, gefolgt von jedem Aussteller der Reihe nach.
- Kopiere einen Fingerabdruck oder das PEM eines einzelnen Zertifikats mit den Buttons auf seiner Karte.
Häufige Fragen
Wie prüfe ich, wann ein SSL-Zertifikat abläuft?
Füge das Zertifikat hier ein und lies die Zeile Gültig bis und den Status darüber, der die verbleibenden Tage zeigt. Um das Zertifikat zu bekommen, das eine Live-Website ausliefert, führe openssl s_client -connect example.com:443 -servername example.com -showcerts aus oder klicke im Browser auf das Schloss (oder das Symbol für Website-Einstellungen), öffne die Zertifikatsanzeige und exportiere es. Auf der Kommandozeile geht es auch mit openssl x509 -in cert.pem -noout -enddate.
Was ist der Unterschied zwischen PEM, DER, CRT und CER?
PEM und DER sind Kodierungen; CRT und CER sind nur Dateiendungen. DER ist die binäre Form des Zertifikats. PEM sind dieselben Bytes in Base64 zwischen den Zeilen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE-----, und eine PEM-Datei kann mehrere Zertifikate enthalten. Eine .crt- oder .cer-Datei kann beide Kodierungen enthalten (Windows meint mit .cer meist DER). Dieser Decoder akzeptiert beide.
Was ist ein Subject Alternative Name (SAN)?
Die SAN-Erweiterung listet jeden Hostnamen und jede IP-Adresse auf, für die das Zertifikat gilt, etwa example.com, www.example.com und *.example.com. Browser prüfen nur diese Liste; den Common Name im Subjekt ignoriert Chrome seit Version 58 (2017). Ein Zertifikat ohne passenden SAN scheitert mit einem Namensfehler, auch wenn der Common Name stimmt.
Was ist ein Zertifikat-Fingerabdruck?
Ein Hash des gesamten Zertifikats in seiner DER-Form, als Hex dargestellt. Er identifiziert genau ein Zertifikat: Weicht ein einziges Byte ab, ändert sich der Fingerabdruck. SHA-256-Fingerabdrücke sind der moderne Standard; SHA-1-Fingerabdrücke zeigen manche Tools und ältere Systeme noch an. Fingerabdrücke sind nicht geheim. Der hier gezeigte SPKI-Pin ist etwas anderes: Er hasht nur den Public Key und bleibt daher gleich, wenn ein Zertifikat mit demselben Schlüssel erneuert wird.
Wie lange darf ein SSL-Zertifikat gültig sein?
Für öffentlich vertrauenswürdige TLS-Zertifikate lag das Limit des CA/Browser Forum ab September 2020 bei 398 Tagen. Ballot SC-081 senkt es schrittweise: 200 Tage für Zertifikate, die ab dem 15. März 2026 ausgestellt werden, 100 Tage ab dem 15. März 2027 und 47 Tage ab dem 15. März 2029. Zertifikate einer privaten oder internen CA sind an diese Limits nicht gebunden. Dieses Tool warnt, wenn ein Leaf-Zertifikat das Limit für sein Ausstellungsdatum überschreitet.
Ist es sicher, mein Zertifikat hier einzufügen?
Ja. Ein Zertifikat ist von Natur aus öffentlich: Jeder Besucher deiner Website erhält es. Das Dekodieren passiert außerdem lokal in deinem Browser. Beim Private Key sieht es anders aus: Füge niemals einen Private Key in eine Website ein. Ist einer in dem enthalten, was du einfügst, ignoriert ihn dieses Tool und sagt dir Bescheid.
Ein Zertifikat lesen: was jedes Feld bedeutet
• Subject und Issuer: Distinguished Names. CN ist der Common Name, O die Organisation, C das Land. Bei einem selbstsignierten oder Root-Zertifikat sind sie identisch.
• Gültigkeit: Not Before und Not After, in UTC. Clients lehnen das Zertifikat außerhalb dieses Zeitfensters ab, eine falsch gehende Uhr auf einem Gerät kann ein gültiges Zertifikat also scheitern lassen.
• Seriennummer: pro CA eindeutig; auf sie verweist eine Sperrliste.
• Public Key: RSA-Schlüssel haben 2048 Bit oder mehr; ECDSA-Schlüssel verwenden eine benannte Kurve, meist P-256 oder P-384, und sind bei vergleichbarer Stärke viel kürzer. Ed25519 wird für öffentliches TLS bisher selten verwendet.
• Key Usage und Extended Key Usage: was der Schlüssel tun darf. Ein TLS-Serverzertifikat braucht TLS Web Server Authentication; ein CA-Zertifikat braucht Certificate Sign.
• Basic Constraints: CA:TRUE kennzeichnet ein Zertifikat, das andere ausstellen darf; eine Pfadlänge begrenzt, wie viele Zwischenzertifikate darauf folgen dürfen.
• Authority Information Access: wo das Ausstellerzertifikat abgerufen werden kann (CA Issuers) und wo man nach dem Widerrufsstatus fragt (OCSP).
Probleme mit der Kette beheben
Die meisten Fehler „Zertifikat nicht vertrauenswürdig“, die in einem Browser nicht auftreten, in einem anderen oder in curl aber schon, stammen von der Kette, die der Server sendet. Der Server sollte zuerst sein eigenes Zertifikat senden, dann das Zwischenzertifikat, das es ausgestellt hat, und so weiter; das Root-Zertifikat muss er nicht senden, das haben Clients bereits. Browser können ein fehlendes Zwischenzertifikat manchmal selbst abrufen (über die AIA-URL), curl, Java, Python und die meisten mobilen Apps aber nicht – deshalb scheitern sie.
Füge hier die vollständige Kette des Servers ein (bei Let’s Encrypt fullchain.pem; bei anderen CAs dein Zertifikat gefolgt vom CA-Bundle) und prüfe, ob jede Zeile „wurde ausgestellt von“ grün ist. Stimmt die Reihenfolge nicht, ordne die PEM-Blöcke in deiner Serverkonfiguration neu. Fehlt ein Glied, füge das Zwischenzertifikat hinzu, das deine CA bereitstellt.
Ähnliche kostenlose Tools
- JWT-Decoder — Dekodiere Header und Payload eines JWT, lies das Ablaufdatum in Klartext, prüfe HS-, RS-, PS- und ES-Signaturen oder signiere ein neues Token. Nichts verlässt deinen Browser.
- Base64-Encoder / -Decoder — Kodiere Text oder Dateien in Base64, mach aus Bildern Data-URIs mit CSS- und <img>-Snippets und dekodiere Base64 zurück in eine Datei mit Vorschau. Nichts verlässt deinen Browser.
- Passwort-Generator — Erzeuge ein sicheres Zufallspasswort, eine einprägsame Passphrase oder eine PIN. Läuft komplett in deinem Browser, nichts wird gesendet oder gespeichert.
- curl in Code — Füge einen curl-Befehl ein, auch aus „Als cURL kopieren“ in Chrome, und erhalte dieselbe Anfrage in Python, JavaScript, Node, Go, PHP, Ruby, Java, C#, wget oder HTTPie.
- YAML-Validator — Prüfe YAML mit exakter Zeile und Spalte jedes Fehlers und finde die Fehler, die Parser stillschweigend akzeptieren: yes/no-Booleans, Tabs, doppelte Schlüssel.