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 42.3. Dieses zentrale Werkzeug für die Zertifikatsverwaltung kann daher problemlos installiert werden:

# zypper in certbot

Einrichtung

Zertifikat beziehen

Cerbot kann den Server eigentlich vollautomatisch konfigurieren, leider scheiterte dies oft - eventuell sind einige Spezifika von openSUSE noch nicht implementiert. Daher erfolgt hier eine Beschreibung des manuellen Ablaufs.

Mit dem folgenden Befehl bezieht man das Zertifikat von Let's Encrypt. Pfade und Domainnamen müssen natürlich individuell angepasst werden.

$ certbot-auto certonly --webroot -w /srv/www/htdocs -d <sub.domain.tld>

Apache konfigurieren

Sofern noch nicht geschehen sollte man zuerst SSL aktivieren

# a2enmod ssl

Anschließend muss eine korrekte vHost-Configdatei für Apache erzeugt werden. Diese liegen bei openSUSE unter /etc/apache2/vhosts.d/ und müssen auf auf conf enden.

<VirtualHost _default_:443>

    DocumentRoot "/srv/www/htdocs"

    ErrorLog /var/log/apache2/error_log

    TransferLog /var/log/apache2/access_log

    SSLEngine on

    # Path to the LetsEncrypt created certificate fullchain.pem

    SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem

    # Path to the LetsEncrypt created private key privkey.pem

    SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem

    CustomLog /var/log/apache2/ssl_request_log   ssl_combined

</VirtualHost>

Anpassungen sind bei den fett markierten Pfaden selbstverständlich notwendig. 
Abschließen ist ein Neustart des Apache-Servers fällig
# systemctl restart apache
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-auto renew
Das ganze muss entweder manuell erfolgen oder man legt hierfür einen Cronjob an - Geschmacksache.

Über

[Mer]Curius bietet Informationen zur technischen Dimension des Datenschutz im digitalen Bereich. Neben permanent aktualisierten Artikeln zu Betriebssystemen, Verschlüsselung und Kommunikationsabsicherung werden im Blog aktuelle Trends präsentiert und kommentiert.

Top