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.
<code># zypper in python3-certbot python3-certbot-apache</code>
Code-Sprache: HTML, XML (xml)
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:
<code># cp /etc/apache2/vhosts.d/vhost.template /etc/apache2/vhosts.d/vhost-nextcloud.conf</code>
Code-Sprache: HTML, XML (xml)
Die Datei bearbeitet man anschließend und trägt die richtigen Werte in die zwei folgenden Zeilen ein.
<code>ServerAdmin webmaster@dummy-host.example.com </code>
<code>ServerName dummy-host.example.com</code>
Code-Sprache: HTML, XML (xml)
Anschließend startet man die automatische Routine von Certbot:
<code># certbot --apache</code>
Code-Sprache: HTML, XML (xml)
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:
<code># systemctl restart apache2</code>
Code-Sprache: HTML, XML (xml)
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.
<code># certbot renew</code>
Code-Sprache: HTML, XML (xml)
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:
<code># nano /etc/cron.d/certbot.cron</code>
Code-Sprache: HTML, XML (xml)
Den folgenden Inhalt einfügen:
<code># renew all certificates methode: renew 10 5 1 * * root /usr/bin/certbot renew</code>
Code-Sprache: HTML, XML (xml)
Dadurch versucht der Cronjob jeden Monat eine Aktualisierung des Zertifikats.