Blogs

Letsencrypt Zertifikate sind nur für 90 Tage gültig. Daher ist eine automatisierte Erneuerung, z.B. via Cron wünschenswert. Das folgende Skript

überprüft die Gültigkeit auf mindestens 30 Tage und ob alle Domains im Zertifikat inkludiert sind:

#!/bin/bash

FIRST_CERT=$1

for DOMAIN in "$@"
do
 openssl x509 -in /etc/letsencrypt/live/$1/cert.pem -noout -text | grep DNS:${DOMAIN} > /dev/null || exit 1
done
CERT=$(date -d "$(openssl x509 -in /etc/letsencrypt/live/$1/cert.pem -enddate -noout | cut -d'=' -f2)" "+%s")
CURRENT=$(date "+%s")
REMAINING=$((($CERT - $CURRENT) / 60 / 60 / 24))
[ "$REMAINING" -gt "30" ] || exit 1
echo Domains $@ are in cert and cert is valid for $REMAINING days

Neben openssl wird nur die bash benötigt und das Skript kann in einem Cronjob / der Crontab wie folgt verwendet werden:

6 20 * * * /usr/local/bin/check_letsencrypt_cert.sh domain.de www.domain.de > /dev/null ||/opt/letsencrypt/letsencrypt-auto -d domain.de -d www.domain.de certonly

Eine vollständige Lösung um letsencrypt mit salt aufzusetzen findet ihr in meiner letsencrypt-formula.