HTTPS Verbindung mit Let’s Encrypt

Nachdem der Heimserver mit Nextcloud versehen und per DDNS und Portfreigabe aus dem Internet erreichbar ist, sollte man sich dringend Gedanken über eine sichere HTTPS Verbindung machen, da die Daten ansonsten bei der Übertragung ungesichert sind, was den Aufwand einen eigenen Server in den eigenen vier Wänden zu betreiben ad absurdum führen würde.

Früher hat man hier mit selbst signierten Zertifikaten gearbeitet, was lästige Fehlermeldungen im Browser zur Folge hatte. Dank Let’s Encrypt ist es aber heute spielend einfach ein ordentliches SSL-Zertifikat für den Heimserver einzurichten.

Certbot installieren

In manchen Distributionen wie Debian lässt sich Certbot bereits über die Paketquellen installieren – so auch bei openSUSE Leap 15.0. Dieses zentrale Werkzeug für die Zertifikatsverwaltung kann daher problemlos installiert werden. Zusätzlich sollte man auch noch die Konfigurationsroutine für Apache installieren.

# zypper in python3-certbot python3-certbot-apache

Einrichtung

Zertifikat beziehen

Cerbot kann den Server vollautomatisch konfigurieren, was inzwischen sehr zuverlässig funktioniert. Voraussetzung dafür ist eine ordentlich konfigurierte bestehende Virtualhost-Konfiguration für Apache. Diese kann man leicht aus der Vorlage von openSUSE anlegen:

# cp /etc/apache2/vhosts.d/vhost.template /etc/apache2/vhosts.d/vhost-nextcloud.conf

Die Datei bearbeitet man anschließend und trägt die richtigen Werte in die zwei folgenden Zeilen ein.

ServerAdmin webmaster@dummy-host.example.com     
ServerName dummy-host.example.com

Anschließend startet man die automatische Routine von Certbot:

# certbot --apache

Hier sind einige Daten wie eine E-Mail Adresse und eine URL einzutragen. Cerbot fragt außerdem ab, ob man alle Zugriffe auf HTTPS umleiten möchte (was zu empfehlen ist)

Apache konfigurieren

Certbot legt automatisch eine neue vHost-Datei an und bearbeitet die bisherige für eine Umleitung. Hier sind keinerlei manuelle Eingriffe mehr notwendig.

Abschließen ist ein Neustart des Apache-Servers fällig:

# systemctl restart apache2

Nextcloud lässt sich nun über eine gesicherte HTTPS-Verbindung aufrufen. Das Zertifikat hat eine Laufzeit von 3 Monaten und muss dann mit folgendem Kommando erneuert werden.

# certbot renew

Das ganze muss entweder manuell erfolgen oder man legt hierfür einen Cronjob an – das bleibt jedem selbst überlassen.

Einen Cronjob legt man unter openSUSE wie folgt an:

# nano /etc/cron.d/certbot.cron

Den folgenden Inhalt einfügen:

# renew all certificates methode: renew 10 5 1 * * root /usr/bin/certbot renew

Dadurch versucht der Cronjob jeden Monat eine Aktualisierung des Zertifikats.

Mehr aus dem Blog

Firmware Updates (BIOS) mit fwupd

Mein privates Hauptgerät ist schon länger ein HP EliteBook G7. Firmware-Updates für einzelne Hardwarekomponenten gab es schon länger via fwupd, aber nun geht darüber...

Boxcryptor von Dropbox übernommen

Ein bisschen untergegangen ist bei mir und vielen anderen vermutlich die Meldung, dass Dropbox von der Secomba GmbH deren Produkt Boxcryptor erworben hat. Das...

Firmen benötigen kein „zweites Leben“ mit Linux

Heise bringt mal wieder eine Serie zum Umstieg auf Linux. Dieses mal für Unternehmen im Angesicht der Windows 11-Migration. Das geht völlig am Thema...

Warum man „Face unlock“ mit einem Google Pixel 7 nicht nutzen sollte

Biometrische Entschlüsselung ist ein Thema für sich. Selbst wenn man dem nicht gänzlich ablehnend gegenüber steht, sollte man nicht leichtfertig jede Lösung nutzen. Gesichtserkennung...