bg-blog-articles

Wie man ein Zertifikat mit OpenSSL überprüft

Wenn Sie eine Website oder einen Server verwalten, gehört die regelmäßige Überprüfung Ihres SSL/TLS-Zertifikats zu den Aufgaben, die Sie sich nicht erlauben können zu vernachlässigen. Ein abgelaufenes oder falsch konfiguriertes Zertifikat bedeutet Browser-Warnungen, gebrochenes Vertrauen und potenzielle Ausfallzeiten.

How to Check a Certificate With OpenSSL

OpenSSL — das Open-Source-Kommandozeilen-Toolkit, das auf praktisch jeder Linux-Distribution und jedem macOS-System verwendet wird und auch unter Windows verfügbar ist — gibt Ihnen direkten, ungefilterten Zugriff auf Zertifikatsdetails. Kein Browser nötig. Keine Tools von Drittanbietern. Nur ein Terminal und ein paar kurze Befehle.

Dieser Leitfaden behandelt die OpenSSL-Befehle, die Sie am häufigsten verwenden werden: Anzeigen von Zertifikatsdetails, Prüfen von Ablaufdaten, Untersuchen von entfernten Servern, Validieren von Zertifikatsketten und Bestätigen, dass Ihr privater Schlüssel zu Ihrem Zertifikat passt. Jeder Befehl ist copy-paste-bereit mit einer klaren Aufschlüsselung dessen, was er bewirkt.

Arbeiten Sie lieber im Browser? Der SSL Checker liefert dieselben Zertifikatsdetails: Kette, Ablaufdatum, Cipher-Suites und eine Sicherheitsbewertung, nur anhand eines Domainnamens, kein Terminal erforderlich, oder Sie können das Zertifikat selbst in Chrome, Firefox, Safari oder Edge einsehen. Dieser Leitfaden deckt alles ab, was Sie lieber über die Kommandozeile erledigen möchten.


Inhaltsverzeichnis

  1. Voraussetzungen: Ihre OpenSSL-Version prüfen
  2. Vollständige Zertifikatsdetails mit openssl x509 anzeigen
  3. Zertifikat eines entfernten Servers mit openssl s_client prüfen
  4. Ablaufdaten von Zertifikaten überprüfen
  5. Zertifikatskette mit openssl verify validieren
  6. Bestätigen, dass Ihr privater Schlüssel zu Ihrem Zertifikat passt
  7. Zwischen Zertifikatsformaten konvertieren
  8. Fehlerbehebung bei häufigen Zertifikatsfehlern
  9. Behalten Sie Ihre Zertifikate unter Kontrolle

Sparen Sie 10% auf SSL-Zertifikate, wenn Sie heute bei SSL Dragon bestellen!

Schnelle Ausgabe, starke Verschlüsselung, 99,99% Browservertrauen, engagierter Support und 25 Tage Geld-zurück-Garantie. Coupon-Code: SAVE10

Ein detailliertes Bild eines Drachens im Flug

Voraussetzungen: Ihre OpenSSL-Version prüfen

Bevor Sie irgendwelche Befehle ausführen, vergewissern Sie sich, dass OpenSSL installiert ist, und prüfen Sie, welche Version Sie verwenden. Ihre Version bestimmt, welche Protokolle und Algorithmen verfügbar sind.

openssl version –a

Dies gibt die Versionsnummer, das Veröffentlichungsdatum und das Standard-Zertifikatsverzeichnis (OPENSSLDIR) aus. Die meisten Linux-Systeme kommen mit vorinstalliertem OpenSSL. Auf macOS wird LibreSSL (ein OpenSSL-Fork) mitgeliefert, das dieselben Befehle verarbeitet.

Wenn Sie unter Windows arbeiten, können Sie über WSL (Windows Subsystem for Linux), Git Bash oder einen eigenständigen Windows-Build auf OpenSSL zugreifen.

Tipp: Stellen Sie sicher, dass Sie mindestens OpenSSL 1.1.1 oder höher verwenden. Ältere Versionen unterstützen kein TLS 1.2 und TLS 1.3, die von modernen Servern und Browsern benötigt werden.


Vollständige Zertifikatsdetails mit openssl x509 anzeigen

Der Befehl openssl x509 ist das Arbeitspferd für die Zertifikatsprüfung. Er liest X.509-Zertifikate, das Standardformat, das von allen SSL/TLS-Zertifikaten verwendet wird, und gibt die Details in menschenlesbarer Form aus.

So zeigen Sie die vollständigen Details einer lokal gespeicherten Zertifikatsdatei an:

openssl x509 -in certificate.crt -text -noout

Hier ist, was jedes Flag bewirkt:

  • -in certificate.crt — Gibt die Eingabezertifikatsdatei an. Ersetzen Sie dies durch Ihren tatsächlichen Dateinamen (z. B. yourdomain.crt oder server.pem).
  • -text — Gibt das Zertifikat in lesbarem Textformat statt in rohen kodierten Daten aus.
  • -noout — Verhindert, dass OpenSSL den Base64-kodierten PEM-Block zusätzlich zur Textausgabe druckt.

Dieser Befehl offenbart alles über das Zertifikat:

  • Erweiterungen — Einschließlich Subject Alternative Names (SANs), Key Usage und Authority Information Access.
  • Aussteller — Die Zertifizierungsstelle (CA), die es signiert hat (z. B. DigiCert, Let’s Encrypt, Sectigo).
  • Subjekt — Die Domain oder Organisation, für die das Zertifikat ausgestellt wurde.
  • Gültigkeitszeitraum — Die Daten „Not Before“ und „Not After“, die anzeigen, wann das Zertifikat aktiv ist.
  • Public-Key-Algorithmus und -Größe — Typischerweise RSA 2048-Bit oder ECDSA P-256.
  • Signaturalgorithmus — Bei modernen Zertifikaten üblicherweise sha256WithRSAEncryption.

Nur Aussteller oder Subjekt prüfen

Wenn Sie nicht die vollständige Ausgabe benötigen, können Sie bestimmte Felder abrufen:

openssl x509 -in certificate.crt -noout -issuer
openssl x509 -in certificate.crt -noout -subject

Diese Einzeiler sind besonders nützlich, wenn Sie skripten oder nur eine schnelle Bestätigung benötigen.

Hinweis: OpenSSL erwartet standardmäßig das PEM-Format — dies sind Textdateien, die mit —–BEGIN CERTIFICATE—– beginnen. Wenn Ihr Zertifikat im DER-Format (binär) vorliegt, fügen Sie das Flag -inform der hinzu:

openssl x509 -in certificate.der -inform der -text -noout

Zertifikat eines entfernten Servers mit openssl s_client prüfen

Sie haben nicht immer die Zertifikatsdatei auf Ihrem lokalen Rechner liegen. Oft müssen Sie das Zertifikat prüfen, das auf einem Live-Server installiert ist. Hier kommt openssl s_client ins Spiel.

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

Dieser Befehl öffnet eine TLS-Verbindung zum Server über Port 443 (den Standard-HTTPS-Port) und zeigt die Zertifikatskette, Protokollversion, Cipher-Suite und Sitzungsdetails an.

Das Flag -servername aktiviert Server Name Indication (SNI), was unerlässlich ist, wenn der Server mehrere Domains auf derselben IP-Adresse hostet. Ohne dieses Flag erhalten Sie möglicherweise das falsche Zertifikat.

Drücken Sie STRG+C, um die Verbindung zu schließen, nachdem Sie sich die Ausgabe angesehen haben.

Kein Terminal zur Hand, oder wollen Sie einen schnelleren Blick? Unser SSL Checker lässt Sie ein Zertifikat ohne OpenSSL prüfen. Geben Sie die Domain ein und erhalten Sie die Kette, das Ablaufdatum und die Cipher-Details direkt in Ihrem Browser.

Für eine saubere Ausgabe weiterleiten

Die rohe s_client-Ausgabe ist ausführlich. Um nur die Zertifikatsdetails zu extrahieren, leiten Sie sie an openssl x509 weiter:

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -text

Das echo | am Anfang sendet eine leere Eingabe, damit sich die Verbindung automatisch schließt. Das 2>/dev/null unterdrückt Fehlermeldungen und liefert Ihnen eine saubere Ausgabe.

Sie können es auch auf bestimmte Felder eingrenzen:

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates

Dieser Einzeiler ist ein praktischer Favorit für Systemadministratoren. Er zeigt Aussteller, Subjekt und Gültigkeitsdaten in einem einzigen Durchgang.

Das Zertifikat lokal speichern

Wenn Sie das entfernte Zertifikat zur weiteren Analyse in einer Datei speichern möchten:

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 > yourdomain.pem

Jetzt können Sie jeden openssl x509-Befehl auf die gespeicherte Datei anwenden.


Ablaufdaten von Zertifikaten überprüfen

Abgelaufene Zertifikate sind eine der häufigsten Ursachen für SSL-Fehler. OpenSSL bietet Ihnen mehrere Möglichkeiten, das Ablaufdatum zu prüfen.

Schnelle Datumsprüfung

openssl x509 -in certificate.crt -noout -dates

Dies gibt sowohl das „Not Before“-Datum (Startdatum) als auch das „Not After“-Datum (Enddatum) aus. Wenn Sie nur das Ablaufdatum benötigen:

openssl x509 -in certificate.crt -noout -enddate

Für entfernte Server

Kombinieren Sie s_client und x509, um das Ablaufdatum des Zertifikats eines Live-Servers zu prüfen:

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

Ablaufwarnungen mit -checkend automatisieren

Das Flag -checkend wird in den meisten Leitfäden übersehen, ist aber für die Automatisierung äußerst nützlich. Es prüft, ob das Zertifikat innerhalb einer angegebenen Anzahl von Sekunden abläuft, und gibt einen Exit-Code zurück:

openssl x509 -in certificate.crt -noout -checkend 2592000

Der Wert 2592000 entspricht 30 Tagen in Sekunden. Wenn das Zertifikat innerhalb von 30 Tagen abläuft, gibt der Befehl einen Exit-Code ungleich Null zurück und druckt eine Warnung. Wenn das Zertifikat über diesen Zeitraum hinaus noch gültig ist, gibt er Null zurück.

Das macht es einfach, dies in Cron-Jobs, Monitoring-Skripte oder CI/CD-Pipelines zu integrieren:

if ! openssl x509 -in certificate.crt -noout -checkend 2592000 > /dev/null 2>&1; then
    echo "WARNING: Certificate expires within 30 days!"
fi

Warum das wichtig ist: Da das CA/Browser Forum bis 2029 auf Zertifikatslaufzeiten von 47 Tagen umstellt, ist eine automatisierte Ablaufüberwachung keine Option mehr, sondern eine Notwendigkeit. Wenn Sie diese Prüfungen jetzt in Ihre Infrastruktur einbauen, ersparen Sie sich später Ausfälle.


Zertifikatskette mit openssl verify validieren

Ein Zertifikat funktioniert nicht isoliert. Browser und Clients validieren die gesamte Zertifikatskette, eine Abfolge, die mit Ihrem Serverzertifikat beginnt, ein oder mehrere Zwischenzertifikate durchläuft und bei einem vertrauenswürdigen Root-CA-Zertifikat endet.

Wenn die Kette unterbrochen oder unvollständig ist, sehen Besucher eine „nicht vertrauenswürdig“-Fehlermeldung, obwohl das Zertifikat selbst gültig ist.

So validieren Sie ein Zertifikat gegen den vertrauenswürdigen CA-Speicher des Systems:

openssl verify certificate.crt

Wenn es certificate.crt: OK ausgibt, ist die Kette vollständig und gültig.

Wenn Zwischenzertifikate separat vorliegen

Wenn sich Ihr Zwischen-CA-Zertifikat in einer separaten Datei befindet (üblich bei vielen CA-Anbietern, einschließlich DigiCert), verwenden Sie das Flag -untrusted:

openssl verify -untrusted intermediate.crt certificate.crt

Das Flag -untrusted weist OpenSSL an, das bereitgestellte Zwischenzertifikat beim Aufbau der Kette zu verwenden, ohne es dauerhaft zum Trust Store hinzuzufügen.

Die vollständige Kette von einem entfernten Server anzeigen

Um jedes Zertifikat in der Kette von einem Live-Server anzuzeigen:

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -showcerts

Das Flag -showcerts gibt jedes Zertifikat in der Kette im PEM-Format aus. Dies ist der bevorzugte Befehl zur Diagnose von Kettenproblemen, wie fehlenden Zwischenzertifikaten oder falscher Reihenfolge.

Bevorzugen Sie eine visuelle Ein-Klick-Prüfung? Unser SSL Checker überprüft die Zertifikatskette für jede Domain und markiert automatisch fehlende Zwischenzertifikate.


Bestätigen, dass Ihr privater Schlüssel zu Ihrem Zertifikat passt

Nach der Installation eines Zertifikats ist eine Nichtübereinstimmung des privaten Schlüssels einer der häufigsten Fehler. Der Webserver startet nicht (oder liefert eine unterbrochene Verbindung), wenn der private Schlüssel nicht dem öffentlichen Schlüssel des Zertifikats entspricht.

So überprüfen Sie die Übereinstimmung. Beide Befehle extrahieren den Modulus, einen gemeinsamen mathematischen Wert, und hashen ihn:

openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privatekey.key | openssl md5

Wenn die MD5-Hashes identisch sind, bilden der private Schlüssel und das Zertifikat ein gültiges Paar. Wenn sie sich unterscheiden, stimmt etwas nicht. Möglicherweise haben Sie den falschen Schlüssel, oder das Zertifikat wurde mit einem neuen Schlüsselpaar neu ausgestellt.

Sie können diese Prüfung auch auf Ihre CSR (Certificate Signing Request) ausweiten:

openssl req -noout -modulus -in request.csr | openssl md5

Die Modulus-Prüfung zeigt Ihnen, ob die drei Dateien zusammengehören, aber nicht, was der CSR tatsächlich angibt. Um seine eigenen Felder zu lesen, führen Sie openssl req -in yourCSR.csr -noout -text aus, oder fügen Sie die Anfrage in unseren CSR-Decoder ein.

Alle drei: Zertifikat, privater Schlüssel und CSR sollten denselben Hash zurückgeben.

Nicht an einem Rechner mit OpenSSL zur Hand? Unser Certificate Key Matcher führt denselben Vergleich in Ihrem Browser durch und funktioniert auch für ECDSA-Schlüssel, bei denen die Modulus-Prüfung fehlschlägt.


Zwischen Zertifikatsformaten konvertieren

Verschiedene Server und Plattformen erfordern unterschiedliche Zertifikatsformate. Apache und Nginx verwenden PEM, während Windows IIS und Tomcat typischerweise PKCS#12 (.pfx) benötigen. Hier sind die häufigsten Konvertierungen:

DER zu PEM:

openssl x509 -inform der -in certificate.der -out certificate.pem

PEM zu DER:

openssl x509 -outform der -in certificate.pem -out certificate.der

PEM zu PKCS#12 (.pfx):

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt -certfile ca-bundle.crt

PKCS#12 zu PEM:

openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes

Das Flag -nodes exportiert den privaten Schlüssel ohne Passwortverschlüsselung. Entfernen Sie es, wenn Sie eine passphrase-geschützte Ausgabe wünschen.

Gut zu wissen: Zertifikatsdateien mit den Erweiterungen .crt, .cer und .pem können alle im PEM-Format vorliegen. Die Erweiterung allein sagt nichts über die Kodierung aus, prüfen Sie den Dateiinhalt. Wenn er mit —–BEGIN beginnt, handelt es sich um PEM. Wenn es binäres Kauderwelsch ist, handelt es sich um DER.

Für eine einmalige Konvertierung auf einem Rechner ohne OpenSSL verarbeitet der SSL Converter PEM, DER, PFX und P7B im Browser und teilt eine PFX-Datei in Zertifikat, Kette und Schlüssel auf.


Fehlerbehebung bei häufigen Zertifikatsfehlern

Wenn etwas schiefgeht, zeigt Ihnen die Ausgabe von OpenSSL normalerweise, wo das Problem liegt. Hier ist eine kurze Referenz für die häufigsten Probleme:

„unable to get local issuer certificate“. Die Zertifikatskette ist unvollständig. Das Zwischenzertifikat fehlt in Ihrer Serverkonfiguration. Beziehen Sie das korrekte CA-Bundle von Ihrem Zertifikatsanbieter und konfigurieren Sie es zusammen mit Ihrem Serverzertifikat.

„certificate has expired“. Genau das, wonach es klingt. Das „Not After“-Datum des Zertifikats ist verstrichen. Erneuern und ersetzen Sie es umgehend.

„certificate signature failure“. Das Zertifikat wurde nach der Signierung verändert oder beschädigt. Laden Sie es erneut von Ihrem CA-Anbieter herunter oder lassen Sie es neu ausstellen.

„key values mismatch“. Der private Schlüssel und das Zertifikat passen nicht zusammen. Führen Sie den Modulus-Vergleich aus dem obigen Abschnitt aus, um dies zu bestätigen, und suchen Sie dann den richtigen Schlüssel oder erstellen Sie eine neue CSR.

„self-signed certificate“. OpenSSL kann das Zertifikat nicht bis zu einer vertrauenswürdigen Root-CA zurückverfolgen. Dies ist bei selbstsignierten Zertifikaten, die in der Entwicklung verwendet werden, zu erwarten. Für den Produktivbetrieb stellen Sie sicher, dass Sie über ein Zertifikat verfügen, das von einer öffentlich vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde.

„hostname mismatch“. Die Domain, mit der Sie sich verbinden, stimmt nicht mit dem Common Name (CN) oder Subject Alternative Name (SAN) überein, der im Zertifikat aufgeführt ist. Prüfen Sie die SANs mit:

openssl x509 -in certificate.crt -noout -ext subjectAltName

Behalten Sie Ihre Zertifikate unter Kontrolle

Die Überprüfung von Zertifikaten mit OpenSSL ist etwas, das Sie während des gesamten Zertifikatslebenszyklus wiederholt tun werden, während der Installation, nach der Erneuerung und immer dann, wenn etwas kaputtgeht. Diese Befehle sind der schnellste Weg, um Probleme zu diagnostizieren und zu überprüfen, ob alles korrekt konfiguriert ist.

Für eine schnelle Plausibilitätsprüfung, ohne ein Terminal zu öffnen, lassen Sie die Domain durch unseren SSL Checker laufen und erhalten Sie in Sekundenschnelle die SSL-Sicherheitsbewertung sowie die vollständige Aufschlüsselung von Zertifikat, Kette und Cipher.

Aber manuelle Prüfungen skalieren nur bis zu einem gewissen Grad. Wenn Sie mehrere Zertifikate über verschiedene Server hinweg verwalten, benötigen Sie einen zuverlässigen Zertifikatsverwaltungsprozess, besonders da die Zertifikatslaufzeiten weiter schrumpfen und die Fehlertoleranz kleiner wird.

Benötigen Sie vertrauenswürdige SSL-Zertifikate? SSL Dragon bietet eine breite Auswahl an SSL/TLS-Zertifikaten von führenden Zertifizierungsstellen wie DigiCert, Sectigo und Thawte, mit wettbewerbsfähigen Preisen, schneller Ausstellung und engagiertem Support. Ob Sie ein Einzeldomain-Zertifikat oder eine Multi-Domain-Lösung auf Unternehmensebene benötigen, Sie finden die passende Lösung.

Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!

Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10

A detailed image of a dragon in flight
Geschrieben von

Erfahrener Content-Autor, spezialisiert auf SSL-Zertifikate. Verwandeln Sie komplexe Cybersicherheitsthemen in klare, ansprechende Inhalte. Tragen Sie durch wirkungsvolle Narrative zur Verbesserung der digitalen Sicherheit bei.