Ein abgelaufenes SSL-Zertifikat führt dazu, dass Browser eine ganzseitige Sicherheitswarnung anzeigen, die Besucher daran hindert, Ihre Website zu erreichen. Hier erfahren Sie, wie Sie prüfen, wann Ihr Zertifikat abläuft, und Monitoring einrichten.
Über den Browser prüfen
- Besuchen Sie Ihre Website mit
https:// - Klicken Sie auf das Schloss-Symbol in der Adressleiste
- Klicken Sie auf “Zertifikat” oder “Verbindung ist sicher” → “Zertifikat ist gültig”
- Suchen Sie nach dem “Gültig bis”- oder “Läuft ab am”-Datum
Mit OpenSSL prüfen (Kommandozeile)
Remote-Prüfung (von jedem Rechner)
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
Ausgabe: notAfter=Aug 5 12:00:00 2026 GMT
Lokale Dateiprüfung
openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem
Alle Details auf einmal prüfen
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates
Mit einem Einzeiler-Skript prüfen
Prüfen, ob ein Zertifikat innerhalb von 30 Tagen abläuft:
if openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -checkend 2592000 > /dev/null 2>&1; then
echo "Zertifikat ist noch mindestens 30 Tage gültig"
else
echo "WARNUNG: Zertifikat läuft innerhalb von 30 Tagen ab!"
fi
Mehrere Domains auf einmal prüfen
Wenn Sie mehrere Domains verwalten, prüfen Sie alle in einer Schleife:
for domain in example.com www.example.com api.example.com; do
expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
echo "$domain — läuft ab: $expiry"
done
Automatisiertes Monitoring mit cron
Erstellen Sie einen täglichen Cron-Job, der Sie per E-Mail benachrichtigt, wenn ein Zertifikat in weniger als 30 Tagen abläuft:
#!/bin/bash
# Speichern als /usr/local/bin/check-ssl-expiry.sh
DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
WARN_SECS=$((WARN_DAYS * 86400))
for domain in $DOMAINS; do
if ! echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | \
openssl x509 -noout -checkend $WARN_SECS > /dev/null 2>&1; then
echo "WARNUNG: $domain Zertifikat läuft innerhalb von $WARN_DAYS Tagen ab" | \
mail -s "SSL-Ablaufwarnung: $domain" admin@example.com
fi
done
Zur Crontab hinzufügen: 0 9 * * * /usr/local/bin/check-ssl-expiry.sh
Monitoring-Dienste einrichten
Für einen robusteren Ansatz verwenden Sie einen Monitoring-Dienst:
| Methode | Wie | Kosten | Alarmoptionen |
|---|---|---|---|
| Kalendererinnerung | 60 Tage nach Ausstellung setzen | Kostenlos | Manuell |
| Cron-Skript | Prüfskript täglich ausführen | Kostenlos | |
| UptimeRobot | SSL-Monitor hinzufügen, Alarmschwelle setzen | Kostenlose Stufe | E-Mail, Slack, Webhook |
| Better Uptime | SSL-Monitoring mit Incident-Management | Kostenlose Stufe | E-Mail, SMS, Slack |
| Certbot automatische Erneuerung | certbot renew via systemd Timer | Kostenlos | Verhindert Ablauf vollständig |
Für Let’s Encrypts 90-Tage-Zertifikate: Erneuern Sie am Tag 60 (30 Tage Puffer).
Welche Zertifikatsdetails sollte ich überprüfen?
Neben dem Ablaufdatum sollten Sie regelmäßig prüfen:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -E 'Subject:|Issuer:|Not After|DNS:'
Dies zeigt:
- Subject/SAN — das Zertifikat deckt die richtigen Domains ab
- Issuer — ausgestellt von der erwarteten CA (z. B. Let’s Encrypt)
- Not After — Ablaufdatum
- DNS-Namen — alle Domainnamen im SAN-Feld
Häufig gestellte Fragen
Was passiert, wenn ein Zertifikat abläuft?
Browser zeigen eine ganzseitige Warnung wie “Ihre Verbindung ist nicht privat” (Chrome) oder “Warnung: Mögliches Sicherheitsrisiko” (Firefox). Die meisten Besucher werden sofort die Seite verlassen. Suchmaschinen können Ihre Seiten auch herabstufen oder deindexieren, bis das Zertifikat erneuert wird.
Wie oft sollte ich prüfen?
Bei automatischer Erneuerung (Certbot) prüfen Sie monatlich als Sicherheitsnetz. Bei manueller Erneuerung (GetHTTPS) prüfen Sie am Tag 50 und setzen Sie eine feste Erinnerung am Tag 60. Mit der 47-Tage-Gültigkeit ab 2029 wird Monitoring noch wichtiger.
Kann ich den Ablauf ohne Kommandozeilenzugriff prüfen?
Ja. Online-Tools wie SSL Labs Server Test und der SSL Checker von SSL Shopper zeigen Zertifikatsdetails einschließlich Ablaufdaten — geben Sie einfach Ihre Domain ein. Browser-DevTools zeigen es ebenfalls an (Schloss-Symbol → Zertifikatsdetails).
Was, wenn mein Zertifikat bereits abgelaufen ist?
Erneuern Sie sofort. Besuchen Sie GetHTTPS, um ein neues Zertifikat zu erhalten, ersetzen Sie die Dateien auf Ihrem Server und laden Sie den Webserver neu. Der Vorgang dauert 5 Minuten. Es gibt keine Strafe für das Ablaufen eines Zertifikats — erneuern Sie einfach und installieren Sie das neue.
Kann ich mehrere Domains mit einem Skript überwachen?
Ja. Hier ist ein Skript, das alle Ihre Domains prüft und die verbleibenden Tage ausgibt:
#!/bin/bash
for domain in example.com www.example.com api.example.com; do
expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
days_left=$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 ))
if [ "$days_left" -lt 30 ]; then
echo "WARNUNG $domain: $days_left Tage verbleibend"
else
echo "OK $domain: $days_left Tage verbleibend"
fi
done
Hinweis: Die date -d-Syntax ist Linux-spezifisch. Unter macOS verwenden Sie date -j -f "%b %d %H:%M:%S %Y %Z".