Nextcloud einrichten: Dynamic-DNS-Konfiguration
Der nächste Schritt ist die Anmeldung eines Dynamic-DNS-Dienstes wie No-IP.org oder duckdns.org. DuckDNS ist ein schlanker, nicht kommerzieller Anbieter, der mittlerweile auch die kostenlosen SSL-Zertifikate von Let’s Encrypt unterstützt und der ein einfaches IP-Update per HTTP-GET-Request zulä...

Der nächste Schritt ist die Anmeldung eines Dynamic-DNS-Dienstes wie No-IP.org oder duckdns.org. DuckDNS ist ein schlanker, nicht kommerzieller Anbieter, der mittlerweile auch die kostenlosen SSL-Zertifikate von Let’s Encrypt unterstützt und der ein einfaches IP-Update per HTTP-GET-Request zulässt. Dies funktioniert mit DSL-Routern wie Fritzbox oder auf der Linux-Kommandozeile mit curl oder wget:
- wget -O /dev/null https://www.duckdns.org/update?domains=meinedomain&token=m
eintoken
Ist die Konfiguration des dynamischen DNS abgeschlossen, richten Sie im DSL-Router eine Portweiterleitung ein: Reichen Sie sowohl auf Port 443 als auch Port 8080 den eingehenden Datenverkehr an die IP-Adresse des Raspberry Pi mit Nextcloud durch. Prüfen Sie anschließend, beispielsweise mit dem Mobiltelefon bei deaktiviertem WLAN, ob die eigene Nextcloud-Instanz nun von außen erreichbar ist:
- https://meinedomain.duckdns.org:8080/
Loggen Sie sich nicht ein, da Ihre Daten unverschlüsselt übers Mobilfunknetz übertragen würden.
Apache und Let's encrypt
Bei Let’s encrypt handelt es sich um einen kostenlosen Dienst, der kostenlose SSL-Zertifikate mit relativ kurzer Gültigkeit anbietet. Die Validierung findet hier lediglich darüber statt, ob derjenige, der den Webserver administriert, bestimmte Dateien ins Root-Verzeichnis des Servers schreiben darf. In der Praxis übernimmt die Erstinstallation und das künftige Update ein certbot genanntes Script, das auch die Apache-Konfiguration anpasst. Tragen Sie zunächst die Zeile
- deb https://ftp.debian.org/debianjessie-backports main
in Ihre Datei
- /etc/apt/sources.list.d/backports.list
ein. Legen Sie diese Datei an, falls sie noch nicht existiert. Anschließend aktualisieren Sie die Paketquellen mit
- apt-get update
und installieren den Certbot mittels:
- apt-get install certbot -t jessie-backports
- apt-get install python-certbot-apache-t jessie-backports
Tragen Sie nun den vollständigen Hostnamen (meinedomain.duckdns.org) in der Direktive ServerName in die Datei
- /etc/apache2/sites-enabled/000-default.conf
ein und starten Sie den Apache noch einmal neu. Noch ist SSL nicht aktiv, aber die Konfiguration enthält nun alles, um Certbot den Rest einrichten zu lassen:
- certbot --apache

Das Script fragt noch einige Daten wie Kontakt-E-Mail-Adresse ab und lässt sich den Hostnamen bestätigen. Lassen Sie HTTPS-Zugriff optional (1: Easy), um im lokalen Netz einfacher zugreifen zu können. Nach Abschluss der Einrichtung ist die Nextcloud-Installation auch per HTTPS erreichbar:
- https://meinedomain.duckdns.org/
Beim Aufruf über diesen Hostnamen werden Sie nun eine Fehlermeldung von Nextcloud erhalten, die besagt, dass über einen nicht vertrauenswürdigen Domainnamen zugegriffen wurde. Sie müssen nun noch einmal die Konfigurationsdatei config/config.php anpassen und hier den Array trusted_domains erweitern:
- 'trusted_domains' =>
- array (
- 0 => '10.76.23.253:8080',
- 1 => 'meinedomain.duckdns.org',
- ),
Beim erneuten HTTPS-verschlüsselten Aufruf über die DuckDNS-Adresse sollte Nextcloud nicht mehr meckern und das Login ohne Probleme funktionieren. Um die HTTPS-Verschlüsselung dauerhaft zu machen, müssen Sie die Zertifikatserstellung als wöchentlich wiederkehrenden Cronjob eintragen. Verwenden Sie
- crontab -e
um den Editor für wiederkehrende Aufgaben zu öffen. Nutzer mit wenig Linux-Erfahrung werden oft zum vorgeschlagenen Editor nano greifen. Wer etwas Linux-Erfahrung hat, ist mit vim.tiny besser bedient. Mit der Zeile
- 30 0 * * 2 /usr/bin/certbot renew >>
- /var/log/le-renew.log
wird jeden Dienstag (2. Wochentag) um 0:30 ein neues Zertifikat generiert. Verwenden Sie den Wochentag Ihrer Erstinstallation von Let’s encrypt, um die Last auf die Server des Anbieters gleichmäßig zu verteilen