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

Canonical arbeitet an einer TPM-basierten Verschlüsselung

Mit dem in Kürze erscheinenden Ubuntu 23.10 wird Canonical erstmals experimentell eine vollständige TPM-basierte Verschlüsselung einführen. Eine kurze Einführung wurde kürzlich im offiziellen Ubuntu-Blog...

Tipp: PDFs bearbeiten mit PDF Mix Tool

Manchmal möchte man aus einem PDF eine Seite entfernen oder nachträglich eine Seite hinzufügen. Für GNOME und GTK-basierte Desktop-Umgebungen gibt es Werkzeuge wie Sand...

Synologys alternde Basis

Synologys DiskStation Manager (DSM) ist eine letztlich eine Linux-Distribution mit einer Mischung aus Open-Source-Software und proprietären Eigenentwicklungen. Diese Basis ist dabei recht konventionell zusammen...

Wofür ich mein Synology NAS nutze

In den letzten Jahren habe ich immer wieder über Synology und die verschiedenen Funktionen des Disk Station Manager (DSM) geschrieben. Aber was davon benutze...