Zertifikate von Let's Encrypt bei Uberspace automatisch verlängern

Mit Let's Encrypt ist es sehr einfach geworden kostenlose Zertifikate für HTTPS zu erstellen, um die eigene Webseite über eine verschlüsselte Verbindung auszuliefern.

HTTPS soll auf jeden Fall eingesetzt werden, wenn private Daten auf einer Webseite eingegeben und dann an den Server übertragen werden. Mit HTTPS ist die Verbindung zwischen Browser und Server verschlüsselt. Des Weiteren wird mit HTTPS sichergestellt, dass der Server auch wirklich der ist, der er vorgibt zu sein.

Da ich fast alle Webseiten bei Uberspace liegen habe, komme ich auch jetzt schon in den Genuss den neuen Dienst zu nutzen. Wie du Let's Encrypt bei Uberspace nutzt, erfährst du in dem Blogartikel, in dem alles dazu erklärt wird.

Einen Haken gibt es, der aber gelöst werden kann. Die Zertifikate von Let's Encrypt sind nur 90 Tage gültig. Natürlich soll das alles automatisiert werden.

Die Dokumentation sagt dazu, dass man einfach den gleichen Befehl noch mal aufrufen soll, den man auch beim ersten Mal schon verwendet hat. Für die Automatisierung wird der Befehl letsencrypt certonly regelmäßig aufgerufen, um ein neues Zertifikat zu erhalten. Damit dies automatisiert werden kann, muss der Befehl ohne Eingabe des Benutzers durchlaufen können.

Aus der Anleitung von Uberspace kennt ihr schon die Konfigurationsdatei ~/.config/letsencrypt/cli.ini. In dieser Datei kommentierst du die letzten beiden Zeilen aus und ergänzt eine Zeile:

# To prevent being forced to agree manually to the terms
agree-dev-preview = True
agree-tos = True

# Overwriting the existing certificate
renew-by-default = True

Es muss dann keinen Bedingungen mehr zugestimmt werden und das alte Zertifikat wird mit dem neuen überschrieben.

Jetzt läuft letsencrypt certonly einfach durch und man muss nichts mehr bestätigen.

Zum Schluss wird alles noch in ein Cronjob gepackt, der dann jeden Monat läuft und das Zertifikat verlängert.

In den Ordner ~/scripts wird die Datei letsencrypt-renew gespeichert. In die Datei scheibst du folgendes rein:

#!/bin/bash

PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
letsencrypt certonly
uberspace-prepare-certificate -k ~/.config/letsencrypt/live/DEINEDOMAIN/privkey.pem -c ~/.config/letsencrypt/live/DEINEDOMAIN/cert.pem

Der Pfad muss auf dich angepasst werden. An der Stelle DEINEDOMAIN steht bei dir dann etwas anderes. Im nächsten Schritt wird der Cronjob mit crontab -e angelegt. Dort wird die Zeile ergänzt und für dich angepasst.

@monthly /home/DEINUSERNAME/scripts/letsencrypt-renew

Das Skript muss ausführbar sein, deswegen noch folgender Befehl:

chmod +x ~/scripts/letsencrypt-renew

Am besten das Script testen und schauen, ob alles funktioniert. Ist alles einmal eingerichtet, muss man sich keine Gedanken mehr darum machen, dass ein Zertifikat bei Uberspace ausgelaufen ist.

Vermutlich verwendest du einen veralteten Browser. Da diese Website auf moderne Technik setzt, benötigst du einen aktuellen Browser, um diese Website richtig darzustellen.