Let’s Encrypt: Erinnerung vor Zertifikatablauf

Let’s Encrypt: Erinnerung vor Zertifikatablauf

Die von Let’s Encrypt kostenlos erhältlichen Zertifikate sind aktuell 90 Tage gültig. Bei vielen Zertifikaten, so z.B. bei vielen Subdomains mit eigenen Zertifikaten, fällt der Überblick schwer, wann welches Zertifikat in Kürze abläuft und erneuert werden muss. Eine automatische Erinnerung muss her.

Eine Methode, um automatisiert alle Zertifikate auf ihren bevorstehenden Ablauf zu testen, kann mit dem folgenden Bash-Script realisiert werden.

Die Zerifikate werden von Let’s Encrypt im Verzeichnis “/etc/letsencrypt/live//cert.pem” abgelegt. Das Script wertet mit Hilfe von OpenSSL das Gültigkeitsdatum jedes unter diesem Pfad gefundenen Zertifikats aus und gibt bei Überschreitung einer eingestellten Vorwarnzeit eine Meldung aus. Wenn das Script per Cron automatisch ein Mal am Tag ausgeführt wird, erhält man vor dem Zertifikatablauf eine entsprechende Mail.

#!/bin/bash

DATADIR=/etc/letsencrypt
OPENSSL=/usr/bin/openssl
DATE=/bin/date
WARNSEC=$((7*24*60*60))

if [ ! -x $OPENSSL ]; then
	echo OpenSSL nicht gefunden!
	exit 1
fi
if [ ! -x $DATE ]; then
	echo Date nicht gefunden!?
	exit 1
fi

for cert in $DATADIR/live/*/cert.pem; do
	info=$($OPENSSL x509 -in $cert -noout -subject -enddate -checkend $WARNSEC) ||
		echo Folgendes Zerifikat läuft bald ab: $info
done
exit 0

Update vom 05.02.2016: Überarbeitetes Script nach einem Hinweis aus den Kommentaren. Danke an Lutz und Michael!

Bei WARNSEC kann eingestellt werden, wie viele Tage vorher eine E-Mail als Erinnerung ausgegeben werden soll. openssl erwartet eine Angabe in Sekunden. Deshalb wird hier sofort umgerechnet.

Das obige Script speichert man z.B unter “/usr/local/bin/letsencrypt_checkcerts” und erstellt anschließend einen Eintrag für Cron, der das Script ein Mal am Tag aufruft.

Schon ist man sicher, keinen Zertifikatsablauf mehr zu verpassen.


Siehe auch

Um Kommentare lesen oder verfassen zu können benötigen wir deine Zustimmung zum Speichern eines Cookies.