Zertifikat-Parser
X.509-Zertifikate sind das Standardformat für Public-Key-Zertifikate, die in TLS/SSL verwendet werden. Dieses Tool parst PEM-kodierte Zertifikate und zeigt Subjekt, Aussteller, Gültigkeitszeitraum, Public-Key-Details und Erweiterungen an. Unverzichtbar beim Debuggen von HTTPS-Verbindungsproblemen.
Spezifikationen
Haeufige Anwendungsfaelle
- SSL/TLS-Verbindungsfehler debuggen ("Zertifikat ist abgelaufen")
- Überprüfen, ob das Zertifikat die richtigen Domainnamen abdeckt
- Zertifikat-Ablaufdaten für die Erneuerungsplanung prüfen
- Zwischen- und Stammzertifikate in einer Kette untersuchen
- Zertifikatsattribute auf Compliance-Anforderungen prüfen
Funktionen
- PEM-kodierte Zertifikate parsen (-----BEGIN CERTIFICATE-----)
- Subjekt und Aussteller-Distinguished-Names anzeigen
- Gültigkeitszeitraum anzeigen (Nicht vor / Nicht nach)
- Public-Key-Algorithmus und -Größe extrahieren
- Subject Alternative Names (SANs) anzeigen
- Zertifikaterweiterungen anzeigen (Key Usage, Extended Key Usage, Basic Constraints)
- Authority/Subject Key Identifier anzeigen
- CRL Distribution Points und Authority Information Access URLs
Beispiele
Selbstsigniertes Zertifikat
Ausprobieren →Ein X.509-Zertifikat für example.com mit Subject Alternative Names.
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIBAgIUb7VAvx3CADEDexgoNd41E9Y5tZowDQYJKoZIhvcNAQEL
BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xFDASBgNVBAoMC0V4YW1wbGUgSW5jMRQwEgYDVQQLDAtF
bmdpbmVlcmluZzEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjYwMTI1MDQ0ODMw
WhcNMjcwMTI1MDQ0ODMwWjB8MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZv
cm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEUMBIGA1UECgwLRXhhbXBsZSBJ
bmMxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRQwEgYDVQQDDAtleGFtcGxlLmNvbTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKN/rhprC1rfrwKpj9ZqwRR
4c51daZRMlij1NbmUJn7KiZTghxu1OtOEodGmpcF3xuWxiBYTOKvQZ+qPpED6IAG
IYtANPetAkRbsf/xdZZZ/BRR3jQQ2AVDfyuBSYjYEV4JMVG47JCj7oewgNb0dejv
HI18aBWzIGE6v9Zv5FDt+d3GjJignI8elrGzrnJg85qsd743xSEPALqf1NsyhjtY
Th91DazAOoPzA/DMXzoXUhAf9C5uWQlSdn6JDzs8/ld0c+LZH9ohvC/IN/PfdkYg
NYR2AJutUdxbOPPmcFm46o/WpquV2H0mIMuvdzI+k/tk6wVV2jwu2ysQLwweqecC
AwEAAaOBjjCBizAdBgNVHQ4EFgQU9Th/a8eJZ9DHh5uUGyf+iTSNF14wHwYDVR0j
BBgwFoAU9Th/a8eJZ9DHh5uUGyf+iTSNF14wDwYDVR0TAQH/BAUwAwEB/zA4BgNV
HREEMTAvggtleGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUuY29tgg9hcGkuZXhhbXBs
ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAE1rGDKmhMBkcdwZva/9CouLeLOIHBiI
uPH1LV6Pbl2KJ11w1L36SstF17+M3Sn0SJxstCePJWlfLlx6r5JZSyNAQghmgep1
/YWrsDtC3bjs4stOz1FWUgUDs+b7pf+h93lLTShX8mue2rjIXbYJPJx9XsCmyx1R
zLuYSoOSQ/0aR7NSzjqgoHEUNI/2mGTRJ6ngC0vx88ppn+tuk8PyAXt8kp8hPx3I
6lmmyzfuwt0JZIawW2p1nkMlGt2IBIxBBY7vjAHCTDRa69YP08QeImDM13FelUVh
tXPOCJaWXZQmppgKNtmpedswRRtOyl83cqzkz4rZRpjnpPqIEWNQ9bs=
-----END CERTIFICATE-----Privater Schlüssel
Ausprobieren →Ein zugehöriger RSA-Privatschlüssel im PKCS#8-Format.
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyjf64aawta368
CqY/WasEUeHOdXWmUTJYo9TW5lCZ+yomU4IcbtTrThKHRpqXBd8blsYgWEzir0Gf
qj6RA+iABiGLQDT3rQJEW7H/8XWWWfwUUd40ENgFQ38rgUmI2BFeCTFRuOyQo+6H
sIDW9HXo7xyNfGgVsyBhOr/Wb+RQ7fndxoyYoJyPHpaxs65yYPOarHe+N8UhDwC6
n9TbMoY7WE4fdQ2swDqD8wPwzF86F1IQH/QublkJUnZ+iQ87PP5XdHPi2R/aIbwv
yDfz33ZGIDWEdgCbrVHcWzjz5nBZuOqP1qarldh9JiDLr3cyPpP7ZOsFVdo8Ltsr
EC8MHqnnAgMBAAECggEAANyt1b1JqlASJPcQMmiABBDsVcJvacW+lOFfNHv/XtIk
AMD3QdfiVnh8BZ2SC+Sbw4nvNVZeMkH4v4j84FcnSjO9YB5Ub+9GSyCXzWdT0zQA
AyeAbe2FSkRqWsI3CETl+iqlMekCPpIfPRYQqSw1w+tTm5APZWHSzpiQA7ydwSsP
sJ1QBq64eXSXFhpyLG0LE4ATeyH9dxj9n9NocL0QOqT+Tl5Dcjlxc7fYmoHStC0q
9Xb5h1Po3kmESAELdUobBbJvJFVK98PMB6osUR4VM4snQJOJZ+4Df7bxU311OgLB
Am/mQjsnyZqBWjDQaUj/BGnapJxqB+a102Ki3XMX4QKBgQDcmUc0c+zfRfnic22Q
ytJ3Y29N1C52GESFulL+cYfwwfVK/VXWT1b/eECABVWZvzP22wyEnkodkYWSoN86
GK2PvH8ii9EpkkCtRabFqmbfqPysTKawu9/BgrVAvEvRQjHHAUZnytwtw+IcL6Nz
EjQ4UrFK+3/rycT05I/ToHRgGQKBgQDPNXI0OSJ1nl7YQOry4C4ekT/uCJAbV7bN
MU49iSMqldlXy+VvSKAwErzvaAtQUolvu3DPw2hcpMxuH+hoHweTA0lu0VbZRKvS
1EhMWQGN2qrSQYcnhvKY/BUbd7KjZ858PeOBcTgyCfBkfdBNgughjsCv2BxKGxQI
Li2gSWSZ/wKBgF0M2pgpffUAE1ON1N2KcBSkAMMXiTGPMvgli/R/9xN6/PjQu3BW
rx+7nZlipqTfng+2fiVCj4jBZVJgQUjEOBG1NPthdqzOYDG2e45NPm+BXHNhMb7C
wLNjawkPY/u0rEKBKy2EyDMVuT6iaZOUTiqj1t0GEQNobIfQEUr3F5+hAoGAZuD3
afxwIovWNXLN9HbgDyc44Zt4yUqcpXZ0jVL4ld0+wzumF8GsXxH+orM64s+IE2Sy
V0WDHHRqV8cZ4hB99z0riY0AnPFeilgB6X5Lqj3GkIweab6z1sdaR3//vuf8em1T
9uHa7+VFaO+aq9FyJa819ljLevPE12buGmY2P8sCgYEAoSk3KwiEO9zvxuuwqdBh
Qv/dvWPgh/KttWcoL6Axt1z4gG+vdidn8xIdVGy6xnQOYpm+ANqRpWO82Hws5ITy
8uDn/S2kjQnyh8Cz7jJLBiJUxz/ZWfUz56cQq3Bej46oJN6UKkhJ9ogAjUJAYjV1
7JIWxv6OC7Cg6xfHCGRa7F0=
-----END PRIVATE KEY-----Tipps
- Zertifikat aus dem Browser exportieren: Schloss-Symbol klicken > Zertifikat > Details > Exportieren.
- Zertifikat einer Website abrufen mit: openssl s_client -connect example.com:443
- SANs (Subject Alternative Names) listen alle gültigen Domainnamen auf.
- Stammzertifikate sind selbstsigniert (Aussteller = Subjekt).
- Zertifikatkette prüfen mit: openssl verify -CAfile ca.pem cert.pem
Verstaendnis Zertifikat-Parser
X.509-Zertifikate sind die Vertrauensgrundlage im Internet und ermöglichen TLS/SSL-Verschlüsselung für HTTPS-Verbindungen, Code-Signierung, E-Mail-Sicherheit (S/MIME) und VPN-Authentifizierung. Ein Zertifikat bindet einen öffentlichen Schlüssel an eine Identität (Domainname, Organisation oder Einzelperson), und eine Zertifizierungsstelle (CA) bürgt für diese Bindung, indem sie das Zertifikat digital signiert.
Zertifikate werden typischerweise im PEM-Format gespeichert — Base64-kodierte DER-Daten, eingeschlossen zwischen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- Markierungen. Ein Zertifikat enthält das Subjekt (wen das Zertifikat identifiziert), den Aussteller (wer es signiert hat), einen Gültigkeitszeitraum (Nicht-vor- und Nicht-nach-Datum), den öffentlichen Schlüssel des Subjekts und Erweiterungen, die die Verwendung steuern. Die Subject-Alternative-Name-(SAN-)Erweiterung listet alle Domainnamen auf, die das Zertifikat abdeckt.
Zertifikatketten stellen Vertrauen her, indem sie ein End-Entity-Zertifikat über ein oder mehrere Zwischen-CAs mit einer vertrauenswürdigen Stamm-CA verbinden. Wenn ein Browser sich mit einer Website verbindet, verifiziert er die Kette: Das Serverzertifikat wurde von einer Zwischen-CA signiert, die von einer Stamm-CA signiert wurde, der der Browser vertraut. Eine unterbrochene Kette — fehlende Zwischenzertifikate oder eine unbekannte Stamm-CA — verursacht den bekannten Fehler "Ihre Verbindung ist nicht privat".
Zertifikatsverwaltung ist eine häufige Ursache für Ausfälle. Abgelaufene Zertifikate verursachen sofortige Dienstunterbrechungen. Nicht übereinstimmende Domainnamen lösen Browser-Warnungen aus. Fehlende Zwischenzertifikate funktionieren in einigen Browsern (die sie möglicherweise zwischenspeichern oder abrufen), aber scheitern in anderen und in API-Clients. Die Überwachung des Zertifikatsablaufs und die Automatisierung der Erneuerung mit Tools wie Let's Encrypt und certbot ist für einen zuverlässigen Betrieb unerlässlich.
Um zu prüfen, wann ein Zertifikat abläuft, fügen Sie den PEM-Inhalt in dieses Tool ein und schauen Sie auf das Nicht-nach-Datum. Auf der Kommandozeile führen Sie openssl x509 -enddate -noout -in cert.pem für eine lokale Datei aus, oder openssl s_client -connect example.com:443 weitergeleitet an openssl x509 -noout -enddate für einen Remote-Server. Automatisierte Überwachung durch certbot, cert-manager oder dedizierte Überwachungsdienste kann rechtzeitig vor Ablauf warnen, um Ausfälle zu vermeiden.
Stammzertifikate sind selbstsigniert (der Aussteller entspricht dem Subjekt) und sind als Vertrauensanker in Browsern und Betriebssystemen vorinstalliert. Zwischenzertifikate werden von einer Stamm-CA signiert und dienen zur Signierung von End-Entity-Zertifikaten. Diese Vertrauenskette schützt den Stammschlüssel — wenn ein Zwischenzertifikat kompromittiert wird, wird nur dieses widerrufen, nicht die Stamm-CA. Server müssen die vollständige Kette senden (End-Entity plus alle Zwischenzertifikate), sollten aber nicht das Stammzertifikat selbst einschließen.
Subject Alternative Names (SANs) listen alle Domainnamen und IP-Adressen auf, für die ein Zertifikat gültig ist. Ein einzelnes Zertifikat kann mehrere Domains wie example.com, www.example.com und api.example.com mit SANs schützen. Moderne Browser verwenden SANs anstelle des Common-Name-(CN-)Feldes für die Domain-Validierung. Wildcard-Zertifikate (*.example.com) decken eine Ebene von Subdomains ab, aber nicht die Apex-Domain selbst.
Ein Zertifikat, das in Browsern funktioniert, aber in API-Clients fehlschlägt, ist ein häufiges Problem, das durch unvollständige Zertifikatketten verursacht wird. Browser sind toleranter — einige rufen fehlende Zwischenzertifikate automatisch über AIA (Authority Information Access) ab oder verwenden zuvor zwischengespeicherte Zwischenzertifikate. API-Clients wie curl, Node.js und Pythons requests-Bibliothek erfordern typischerweise, dass die vollständige Kette vom Server gesendet wird. Stellen Sie sicher, dass Ihr Server so konfiguriert ist, dass er das End-Entity-Zertifikat plus alle Zwischenzertifikate sendet, und testen Sie mit curl -v oder openssl s_client, um die Vollständigkeit der Kette zu überprüfen.