/ Let's Encrypt

dehydrated eingedampft

Vor ein paar Tagen erreichte mich ein Kommentar zu meinem Let's-Encrypt-Setup: die Datei hook.sh muss um die Kommandos unchanged_cert und exit_hook ergänzt werden.

Ja, ich weiß - es ist schon mehr als nur ein paar Tage her, dass letsencrypt.sh zu dehydrated umbenannt wurde. Und ich habe die dafür notwendigen Änderungen bei mir lokal auch vorgenommen. Aber ich habe sie hier nicht dokumentiert. Schande über mich.

Jedenfalls hat mich Freddy Leitner[1] netterweise auf diesen Lapsus aufmerksam gemacht. Er hat außerdem angemerkt, dass man die gesamte Infrastruktur noch ein wenig verschlanken kann:

hook.sh

Die hook.sh muss bei unserem Setup nur auf genau einen Hook reagieren, nämlich deploy_cert. Alle anderen können wir getrost ignorieren. Um genau zu sein, müssen wir das sogar - für den Fall, dass wie oben beschrieben weitere Hooks hinzukommen. Damit schnurrt die Datei auf folgende sechs Zeilen zusammen:

#!/usr/bin/env bash
if [ "${1}" == "deploy_cert" ] ; then
  uberspace-add-certificate -k ${3} -c ${4}
else
  exit 0
fi

Bei der Gelegenheit habe ich gleich noch das veraltete uberspace-prepare-certificate in den aktuellen Befehl uberspace-add-certificate geändert. Außerdem konnte ich auch die Parameter-Überprüfung entfernen. Der Rückgabewert eines Shell-Skripts ist ja gleich dem Rückgabewert des letzten ausgeführten Befehls. Und im Zweifel macht sich uberspace-add-certificate schon passend bemerkbar.

config.sh

Bei der config.sh ist das Verhältnis von Kommentaren zu Nutzlast noch größer. Hier kommen wir mit insgesamt nur drei Zeilen aus:

WELLKNOWN="/var/www/virtual/${USER}/html/.well-known/acme-challenge"
HOOK="${BASEDIR}/hook.sh"
CONTACT_EMAIL="${USER}@${HOSTNAME}"

Diese Version der Konfigurationsdatei hat jetzt darüber hinaus den Vorteil, dass sie unverändert mit jedem beliebigen Account funktionieren sollte. Die verwendeten Variablen werden jedenfalls beim Aufruf über runwhen korrekt gesetzt. Ob das auch als Cronjob funktioniert, kann ich mangels passendem Setup im Moment nicht überprüfen. Your mileage may vary.

An dieser Stelle nochmal vielen Dank an Freddy! Und natürlich an alle anderen Leser - die, die mir Kommentare schreiben, und die, die einfach nur so vorbeischauen und meine Notizen nützlich finden.


  1. Ich wollte mich bei Freddy ja gerne mit einem Link revanchieren, aber sein Blog ist wohl momentan noch in Arbeit. :-) ↩︎