Probleme mit SSL-Zertifikaten gehören zu den störendsten technischen Problemen, die eine Website haben kann. Ein abgelaufenes Zertifikat sperrt jeden Besucher mit einer Browserwarnung aus. Ein falsch konfiguriertes Zertifikat führt zu stillen Fehlern. Ein für die falsche Domäne ausgestelltes Zertifikat zerstört Subdomänen. Und im Gegensatz zu den meisten Problemen treten Zertifikatsprobleme nach einem Zeitplan auf – sie laufen ab – und sind daher völlig vermeidbar, wenn Sie wissen, wo Sie suchen müssen.
Hier erfahren Sie, wie Sie ein SSL-Zertifikat überprüfen, was die einzelnen Felder bedeuten und was zu tun ist, wenn etwas nicht stimmt.
Der Schnellcheck: Ihr Browser
Für jede Website, die Sie besuchen, erfolgt die schnellste SSL-Prüfung direkt in Ihrem Browser.
Chrome / Edge: Klicken Sie auf das Schlosssymbol (oder den Text „Verbindung ist sicher“) neben der URL → Zertifikat ist gültig → Zertifikatdetails
Firefox: Klicken Sie auf das Schlosssymbol → Verbindung sichern → Weitere Informationen → Zertifikat anzeigen
Das zeigt Ihnen:
- Für wen das Zertifikat ausgestellt wurde (die Domäne)
- Wer hat es ausgestellt (die Zertifizierungsstelle)?
- Gültig ab / Gültig bis Daten
- Die Seriennummer und der Fingerabdruck des Zertifikats
Für eine schnelle Plausibilitätsprüfung – ist dieses Zertifikat gültig und gehört es zur richtigen Domäne – reicht die Browser-Benutzeroberfläche aus.
Der gründliche Check: Online-Tool
Für eine vollständige Analyse eines Zertifikats, einschließlich Verschlüsselungssammlungen, Kettengültigkeit, HSTS-Konfiguration und bekannter Schwachstellen, verwenden Sie die SSL-Checker-Tool. Geben Sie eine beliebige Domäne ein und es wird eine vollständige Analyse ausgeführt, ohne dass etwas installiert werden muss.
Dies ist besonders nützlich für:
- Zertifikate auf Servern, auf die Sie nicht direkt zugreifen können
- Überprüfung eines neuen Zertifikats nach der Installation
- Zertifikate prüfen, bevor sie ablaufen
- Überwachung der Cipher-Suite-Stärke (TLS 1.0/1.1 sollte deaktiviert sein)
Die Befehlszeile: openssl
Für Entwickler und Systemadministratoren: openssl ermöglicht Ihnen die direkte Zertifikatsprüfung vom Terminal aus.
Überprüfen Sie das Zertifikat eines Remote-Servers:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -text
Dies gibt die vollständigen Zertifikatsdetails zurück. Wichtige Bereiche, die Sie sich ansehen sollten:
Ablaufdatum:
openssl s_client -connect example.com:443 -servername example.name </dev/null 2>/dev/null | openssl x509 -noout -dates
Ausgabe:
notBefore=Jan 1 00:00:00 2025 GMT
notAfter=Jan 1 00:00:00 2026 GMT
Überprüfen Sie eine lokale Zertifikatsdatei:
openssl x509 -in certificate.crt -noout -text
openssl x509 -in certificate.crt -noout -dates
openssl x509 -in certificate.crt -noout -subject -issuer
Überprüfen Sie eine Zertifikatskette:
openssl verify -CAfile chain.pem certificate.crt
Tage bis zum Ablauf prüfen (skriptfähig):
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2 | xargs -I{} date -d {} +%s | xargs -I{} expr \( {} - $(date +%s) \) / 86400
Gibt die Anzahl der verbleibenden Tage zurück. Nützlich bei der Überwachung von Skripten.
Was jedes Zertifikatfeld bedeutet
Betreff / Allgemeiner Name (CN): Die Domäne, für die das Zertifikat ausgestellt wurde. Muss mit der von Ihnen besuchten Domain übereinstimmen, sonst zeigt der Browser eine Warnung an. Bei Wildcard-Zertifikaten ist dies der Fall *.example.com.
Subject Alternative Names (SANs): Die Liste aller Domänen, die das Zertifikat abdeckt. Moderne Zertifikate nutzen SANs statt nur CN. Ein Zertifikat könnte dies abdecken example.com, www.example.com, und api.example.com – alle hier aufgelistet. Dies ist, was der Browser tatsächlich prüft.
Emittent: Die Zertifizierungsstelle (CA), die das Zertifikat signiert hat. Gängige: Let's Encrypt, DigiCert, Sectigo, Google Trust Services, Amazon. Das eigene Zertifikat des Ausstellers wird von einer Stammzertifizierungsstelle signiert, der Browser vertrauen.
Gültigkeitsdauer: Nicht vor und nicht nach Terminen. Zertifikate verfallen – Let's Encrypt-Zertifikate verfallen alle 90 Tage (mit automatischer Verlängerung). Kommerzielle Zertifikate haben in der Regel eine Laufzeit von einem Jahr.
Schlüsselalgorithmus und Größe: RSA 2048-Bit ist das Minimum; 4096-Bit oder EC P-256 sind stärker. EC-Zertifikate (Elliptic Curve) bieten gleichwertige Sicherheit mit kleineren Schlüsselgrößen, was die Leistung geringfügig verbessert.
TLS-Version: Ihr Server sollte TLS 1.2 und TLS 1.3 unterstützen. TLS 1.0 und 1.1 sind veraltet und sollten deaktiviert werden – moderne Browser verweigern Verbindungen darüber.
Zertifikatstransparenz: Moderne Zertifikate werden in öffentlichen Zertifikatstransparenzprotokollen protokolliert. Dies ist für von Chrome vertrauenswürdige Zertifikate obligatorisch. Damit kann jeder überprüfen, welche Zertifikate für eine Domäne ausgestellt wurden – nützlich, um nicht autorisierte Zertifikate zu erkennen.
Häufige SSL-Probleme und wie man sie behebt
Abgelaufenes Zertifikat Das häufigste Problem. Ihr Browser zeigt „Ihre Verbindung ist nicht privat“ mit der Fehlermeldung an NET::ERR_CERT_DATE_INVALID.
Fix: Erneuern Sie das Zertifikat. Wenn Sie Let's Encrypt mit Certbot verwenden, führen Sie es aus certbot renew. Wenn Sie ein kostenpflichtiges Zertifikat verwenden, erwerben Sie über Ihre Zertifizierungsstelle eine Verlängerung und installieren Sie es. Richten Sie die Überwachung ein, um Sie 30 Tage vor Ablauf zu benachrichtigen, damit dies in der Produktion nie passiert.
Nichtübereinstimmung der Zertifikatdomäne Das Zertifikat wurde ausgestellt für example.com aber du bist zu Besuch www.example.com (oder umgekehrt), und das Zertifikat enthält das andere nicht als SAN.
Lösung: Besorgen Sie sich entweder ein Zertifikat, das beides abdeckt (die meisten Zertifikate sollten das tun), oder leiten Sie eines auf das andere konsistent um.
Unvollständige Zertifikatskette Ihr Server präsentiert Ihr Zertifikat, jedoch nicht die Zwischenzertifikate, die ihn mit einer vertrauenswürdigen Stammzertifizierungsstelle verbinden. Browser, die die Zwischenspeicherung zwischengespeichert haben, können eine Verbindung herstellen. andere sehen einen Fehler.
Fix: Konfigurieren Sie Ihren Webserver so, dass er die vollständige Kette sendet. Verwenden Sie mit Nginx ssl_certificate verweist auf eine Datei, die sowohl Ihr Zertifikat als auch das Zwischenpaket enthält. Verwenden Sie bei Apache SSLCertificateChainFile.
Überprüfen Sie speziell dieses Problem:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | grep -A 1 "Certificate chain"
Sie sollten mindestens 2 Zertifikate in der Kette sehen (Ihr Zertifikat + Zwischenzeugnis).
Selbstsigniertes Zertifikat Browser vertrauen keinen Zertifikaten, die nicht von einer anerkannten Zertifizierungsstelle signiert sind. Selbstsignierte Zertifikate eignen sich gut für die interne Entwicklung, lösen jedoch bei allen öffentlich zugänglichen Websites Warnungen aus.
Fix: Holen Sie sich ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle. Let's Encrypt ist kostenlos und automatisiert für öffentliche Domains.
Schwache Verschlüsselungssuite Der Server handelt eine TLS-Verbindung mit veralteten oder schwachen Algorithmen aus (RC4, DES, Export-Grade-Chiffren, TLS 1.0/1.1).
Überprüfen Sie mit:
nmap --script ssl-enum-ciphers -p 443 example.com
Fix: Aktualisieren Sie die SSL-Konfiguration Ihres Webservers nur auf moderne Cipher Suites. Mozillas SSL-Konfigurationsgenerator generiert fertige Konfigurationen für Nginx, Apache und andere.
Zertifikatsüberwachung
Die manuelle Überprüfung von Zertifikaten vor ihrem Ablauf ist nicht skalierbar. Möglichkeiten zur automatisierten Überwachung:
Automatische Erneuerung von Certbot: Wenn Sie Let's Encrypt verwenden, richtet Certbot einen Cronjob oder Systemd-Timer ein, der Zertifikate automatisch erneuert, wenn weniger als 30 Tage verbleiben. Überprüfen Sie, ob es funktioniert: certbot renew --dry-run
Verfügbarkeitsüberwachungsdienste: Die meisten Verfügbarkeitsmonitore (UptimeRobot, Freshping, Better Uptime) enthalten Warnungen zum Ablauf von Zertifikaten. Legen Sie einen 30-Tage-Warnschwellenwert fest.
Benutzerdefiniertes Skript in Cron: Ein einfaches Bash-Skript mit dem openssl kann der Ablauf überprüft und eine E-Mail-Benachrichtigung gesendet werden.
Der obige Befehl
#!/bin/bash
DOMAIN="example.com"
DAYS_LEFT=$(echo | openssl s_client -connect $DOMAIN:443 -servername $DOMAIN 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2 | xargs -I{} python3 -c "from datetime import datetime; print((datetime.strptime('{}', '%b %d %H:%M:%S %Y %Z') - datetime.utcnow()).days)")
if [ "$DAYS_LEFT" -lt 30 ]; then
echo "Certificate for $DOMAIN expires in $DAYS_LEFT days" | mail -s "SSL Warning" admin@example.com
fi
Das Fazit
Zertifikatsprobleme sind vorhersehbar und vermeidbar. Die wichtigsten – Ablauf, Domäneninkongruenz, unvollständige Kette – werden bei einer SSL-Prüfung alle deutlich angezeigt.
Führen Sie eine Prüfung für jede Domain mit dem durch SSL-Checker-Tool. Richten Sie für Produktionsserver eine Ablaufüberwachung mit einem Benachrichtigungsfenster von mindestens 30 Tagen ein. Und wenn Sie immer noch TLS 1.0 oder 1.1 verwenden, deaktivieren Sie sie – jeder moderne Server sollte nur TLS 1.2+ verwenden.