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/
1#!/bin/bash
2
3DATADIR=/etc/letsencrypt
4OPENSSL=/usr/bin/openssl
5DATE=/bin/date
6WARNSEC=$((7*24*60*60))
7
8if [ ! -x $OPENSSL ]; then
9 echo OpenSSL nicht gefunden!
10 exit 1
11fi
12if [ ! -x $DATE ]; then
13 echo Date nicht gefunden!?
14 exit 1
15fi
16
17for cert in $DATADIR/live/*/cert.pem; do
18 info=$($OPENSSL x509 -in $cert -noout -subject -enddate -checkend $WARNSEC) ||
19 echo Folgendes Zerifikat läuft bald ab: $info
20done
21exit 0Update 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.