NextcloudPi Teil 3: Gültiges Verschlüsselungszertifikat mit Let’s Encrypt erstellen

Kategorien:

Durch Chipknappheit und gestörte Lieferketten ist der Raspberry Pi derzeit kaum zu bekommen oder unverschämt teuer. Unter Umständen kann es sinnvoller und günstiger zu sein, für dein Projekt einen echten Mini-PC wie den HP ProDesk 600* zu kaufen und dort ein Linux-Betriebssystem wie Ubuntu oder Debian zu installieren.

In diesem Artikel geht es um die Einrichtung eines eigenen NAS/Homeservers auf Basis eines Raspberry Pi und Nextcloud. Es gibt jedoch noch weiter Möglichkeiten einen Raspberry Pi als Homeserver zu nutzen. Eine Übersicht über Artikel die sich mit diesem Thema beschäftigen findest Du unter Übersicht: Homeserver/NAS mit dem Raspberry Pi


Mittlerweile haben wir mit einem Raspberry Pi* und Nextcloud eine funktionierende Cloudlösung eingerichtet die über das Internet erreichbar ist. Die Übertragung von Dateien über das Internet ist hierbei nur über eine verschlüsselte Verbindung möglich.

Wofür wird ein Verschlüsselungszertifikat von Let’s Encrypt benötigt?

Leider besteht hierbei noch der kleine Wermutstropfen dass Nextcloudpi bisher für die Verschlüsselung ein sogenanntes selbstsigniertes Zertifikat verwendet, welches im Webbrowser zu einer unschönen Warnung und Fehlermeldung führt. Allerdings kann es auch passieren dass Anwendungen von Drittanbietern den Dienst komplett verweigern wenn ihnen der NextcloudPi ein, aus ihrer Sicht, ungültiges Verschlüsselungszertifikat vorlegt.

Erst seit kurzer Zeit, nämlich seit die Zertifizierungsstelle Let’s Encrypt ihren Dienst aufgenommen hat, lässt sich diese Situation einfach, automatisiert und zudem noch kostenlos beheben.

Das Problem bei selbstsignierten Zertifikaten ist, dass nicht überprüft wird ob die aufgerufene Internetadresse tatsächlich zu dem Computer gehört mit dem man sich gerade verbindet. Eine offizielle Zertifizierungsstelle wie Let’s Encrypt muss sich einem umfangreichen Regelwerk für das ausstellen von Zertifikaten unterwerfen und außerdem regelmäßige Überprüfungen über sich ergehen lassen. Werden diese erfolgreich bestanden wird die Organisation als vertrauenswürdig Webbrowser wie Google Chrome, Mozilla Firefox usw aufgenommen.

Wenn wir nun ein Verschlüsselungszertifikat bei Let’s Encrypt beantragen, dann überprüft die Stelle ob hinter der angegebenen Internetadresse auch wirklich unser Nextcloudpi erreichbar ist. Dies Funktioniert dadurch, dass zuerst unser NextcloudPi eine Verbindung zu Let’s Encrypt aufbaut und unsere Internetadresse übermittelt. Let’s Encrypt versucht daraufhin den umgekehrten Weg zu gehen und über die übermittelte Internetadresse eine Verbindung zu unserem NextcloudPi aufzubauen. Gelingt dies stellt die Zertifizierungsstelle ein Verschlüsselungszertifikat aus, welches bestätigt dass hinter unserer Internetadresse mynextcloud.ddns.net auch wirklich unsere Nextcloud erreichbar ist.

Da die Software zur für Let’s Encrypt in NextcloudPi standardmäßig bereits integriert ist, lässt sich ein solches Zertifikat mit wenigen Mausklicks beantragen und installieren.

Anschließend melden die Browser keinen Fehler mehr und man erhält ein schönes grünes Verschlüsselungssymbol in der Adresszeile.

Zusätzliche Portfreigabe für Let’s Encrypt einrichten

In Teil 2 haben wir bereits eine Portfreigabe in der Fritzbox für verschlüsselte Verbindungen über Port 443 mit HTTPS eingerichtet. Damit der Zugriff für Let’s Encrypt funktioniert muss auch der Port für unverschlüsselte Verbindungen freigegeben werden.

Hierzu muss in der Fritzbox unter Internet -> Freigaben -> Portfreigaben eine neue Freigabe für den Dienst HTTP, bzw Port 80 erstellt werden. Letztendlich müssen hierzu nur nochmal die Schritte aus Teil 2 wiederholt werden.

Verschlüsselungszertifikat bei Let’s Encrypt erstellen

Damit das Beantragen des Zertifikats automatisier klappt müssen die folgenden Voraussetzungen erfüllt sein.

Man benötigt eine eigenen Internetadresse, diese muss via DynDNS auf den Nextcloudpi erreichen. Außerdem müssen die Netzwerkports 80 (HTTP) und 443 (HTTPS) im Router für den NextcloudPi freigegeben sein. Dies habe wir in Teil zwei bereits erledigt.

Da Let’s Encrypt bereits in NextcloudPi integriert ist, ist alles weitere in ein paar Minuten erledigt. Zerst muss man sich wieder in die Verwaltungsoberfläche des Pi einloggen über die lokale Domain https://nextcloudpi.local:4443, oder über die IP-Adresse https://192.168.30.125:4443.

Hier wird im linken Menü der Punkt Networking > letsencrypt ausgewählt. In die Felder trägt man die in Teil 2 erstellte DynDns Internetadresse ein, in unserem Fall „mynextcloud.ddns.net“. Außerdem muss eine gültige Emailadresse angegeben werden.

Nextcloudpi Lets Encrypt beantragen

Mit einem Klick auf OK erstellt NextcloudPi automatisch die benötigten Schlüsseldateien und leitet die Überprüfung durch Let’s Encrypt ein. Wenn diese erfolgreich ist, bekommt man ein grünes Licht in der Verwaltungsoberfläche und das Zertifikat wird automatisch eingerichtet.

Nextcloudpi Lets Encrypt Zertifikat erstellt

Um Missbrauch vorzubeugen ist die Anzahl an Anfragen die man bei Let’s Encrypt stellen kann auf wenige Anfragen pro Woche limitiert. Schlägt der Vorgang fehl, so sollte man vor einem erneuten Versuch überprüfen, ob die eingerichtete DynDNS Adresse tatsächlich funktioniert und ob der NextcloudPi darüber erreichbar ist.

Zu beachten ist außerdem, dass die Zertifikate von Let’s Encrypt eine Gültigkeit von drei Monaten haben. Danach muss eine neue Überprüfung erfolgen, was NextcloudPi aber automatisch übernimmt.
Damit dies möglich ist, müssen aber die eingerichteten Portfreigaben und der DynDNS weiterhin funktionieren.

Nach dem Ausstellen des Zertifikates dauer es ein paar Minuten bis NextcloudPi dieses eingerichtet hat, evtl. ist ein Neustart nötig, damit der lokale Webserver seine Einstellungen aktualisiert.

Wenn man dann die Cloud über die Adresse mynextcloud.ddns.net aufruft bekommt man keine Fehlermeldungen mehr.

Nun ist es möglich, die Nextcloud auch uneingeschränkt mit anderen Apps, wie z.B. Kalenderapps zu verbinden und Nextcloud problemlos über den Webbrowser zu nutzen. Apps von Drittanbietern, die man mit seiner Nextcloud verbinden möchte, verhindern häufig die Verbindung, wenn kein vertrauenswürdiges Verschlüsselungszertifikat vorliegt. Mit einem eingerichteten Let’s Encrypt Zertifikat gehören solche Probleme der Vergangenheit an.


Unterwegs immer mit Strom versorgt
Anzeige
Powerbank 60W Ladeleistung für Laptop & Handy
20.000 mAh, USB-C und USB-A, Hohe Ladeleistung ermöglicht Laden von Notebooks
Perfekte Reiseladegerät - Hohe Ladeleistung, 3 Ausgänge
USB-C & USB-A, 65W Ladeleistung lädt Laptops & Handys, Power Delivery & Quick Charge
Niko
Niko
Ich bin Niko, betreibe BitReporter und interessiere mich für jede Form von Technologie, die in unseren Alltag Einzug hält. Ich schreibe hier über Software und Hardware die ich verwende, sowie Probleme mit meiner Technik und Lösungen. Schließlich soll Technik nützlich sein und Spaß machen und nicht zusätzliche Arbeit verursachen.

16 Kommentare

  1. Mann, ich danke Dir. Ich habe das durch geackert und mit diesen phänomenalen Erklärungen tatsächlich geschafft! Man muss dazu sagen, dass ich in derlei Dingen eher ein Honk bin. Alos tausend Dank!

  2. Die drei Artikel haben mir sehr geholfen. Das Ergebnis machte erstmal richtig Freude. Fast alles ist damit gelöst. Aber folgende Probleme.
    1.
    Im Kennenlern- und Installationsprozess habe ich auch schon mal den Raspi ausschalten müssen. Bei einer schon gut funktionierenden Nextcloud ist die Stromtrennung Gift. In der Web-Oberfläche fand ich dazu nichts und ssh pi@raspberrypi verschaffte mir auch keinen Zugang. Bei der im anderen blog erwähnten Stromtrennung sehe ich auch nicht die saubere Lösung.
    Könnt Ihr nicht noch einen Beitrag über eine unterbrechungsfreie Stromversorgung für dieses Projekt schreiben?
    2.
    Sind die in der Installation verwendeten Einstellungen beim E-Mailserver richtig so richtig? admin@ownyourbits.com

    • Hallo Alwi,
      ordentlich kannst du den Raspberry Pi über die Administrationsoberfläche herunterfahren. Also nicht über Nextcloud über die Adresse https://nextcloudpi.local, sondern über https://nextcloudpi.local:4443. Dort kannst du auch den SSH Zugang aktivieren. Dann kannst du dich einloggen über „ssh pi@nextcloudpi.local“ oder via IP-Adresse „ssh pi@192.168.30.125“ (IP-Adresse anpassen). Dort funktioniert das Herunterfahren mit dem Befehl „sudo shutdown -h now“.

      Wenn du in Nextcloud den Sendemodus auf sendmail gestellt hast, dann versendet der Raspi die Mail selbst. Je nachdem wie restriktiv der Spamschutz beim Empfänger eingestellt ist, kommt die Mail an, oder auch nicht. Was da als Absenderadresse steht ist letztendlich egal.
      Besser ist es, du stellst den Sendemodus auf SMTP. Dann kannst du einen echten Mailserver eintragen, beispielsweise von web.de oder Gmail. Damit funktioniert der Mailversand auch zuverlässig. Dann muss die Absenderadresse natürlich zum Emailkonto passen.

      Viel Spaß noch.

  3. Hallo Niko,
    du hast alles richtig gut erklärt. Danke.
    Ich möchte Dich gern noch um weitere Erläuterung bitten.
    1.
    Die externe HD wird von nc genutzt. Wenn ich neugierigerweise mal die Platte an einen anderen Rechner hänge, ist sie scheinbar leer. Was hat das zu bedeuten?
    Inzwischen habe ich etliche Gigas hochgeladen.
    2.
    Wenn ich eine 2. HD anhänge und beim backup als Ziel /media/usbdrive2/… angebe, erhalte ich keine Fehlermeldung. Aber auch die HD2 hat keine Einträge,
    hätte ich sie nicht mounten müssen?
    3.
    Wenn aus Sicherheitsgründen hin und wieder ein image der SD.Karte zu machen ist, wie würde ein erfahrener user damit umgehen?

    Das sind Fragen, die sich nach den ersten drei sehr detaillierten Anleitungen zur Installation und Inbetriebnahme aufdrängen, wenn man das System von Nextcloudpi und Raspi ernsthaft/dauerhaft nutzen möchte.

    • Hallo Albrecht,
      zu 1. Hast du die Festplatte an einen Windows-PC gehängt? Der kann das Linux-Dateisystem der externen Festplatte nicht lesen. An einem anderen Linuxrechner (oder z.B. wenn du den PC mit einer Ubuntu Live-CD startest), dann müsste auch die Daten auf der externen Festplatte angezeigt werden.

      zu 2. Wenn unter /media/usbdrive2 kein Datenträger gemountet ist, du aber trotzdem dorthin schreibst, dann landen die Daten in diesem Verzeichnis auf der SD-Karte. Du kannst im Adminpanel von Nextcloudpi automount aktvieren, dann sollten weitere Datenträger automatisch eingebunden werden. Der Pfad muss natürlich trotzdem stimmen. Wie Nextcloudpi das handhabt weiß ich leider nicht.

      zu 3. Regelmäßig ein Image der SD-Karte zu machen ist auf jeden Fall eine gute Idee. Genau wie ein Backup der Daten in Nextcloud. Das würde ich auf einer externen Festplatte speichern, die nicht dauerhaft an einen Computer angeschlossen und dadurch sicher vor Ransomware ist. Oder z.B. als verschlüsseltes Zip-Archiv in einen Cloudspeicher hochladen.

      Hoffe das hilft ein bisschen weiter. Wie fast immer, gibt es viele Wege die zum Ziel führen.

  4. Vielen Dank für diese sehr ausführliche und klare Anleitung! Die hat mir wirklich sehr geholfen beim Einrichten!

    Eine Frage stellt sich mir noch in Bezug auf das Let’s Encrypt-Zertifikat:

    In meiner Fritzbox 6490 nutze ich als Alternative zu den gängigen DynDNS-Diensten den AVM-eigenen MyFritz!-Dienst (Domain sieht dann so aus: […].myfritz.net), was für andere Dienste wie VPN sehr gut funktioniert. Gerne würde ich diesen Weg auch für das LE-Zertifikat gehen.

    Wenn ich diese Domain aber im Panel von NextCloudPi eingebe, erhalte ich eine Fehlermeldung:

    Domain: […].myfritz.net
    Type: connection
    Detail: Fetching
    https://[…].myfritz.net/.well-known/acme-challenge/[…]:
    Timeout during connect (likely firewall problem)

    To fix these errors, please make sure that your domain name was
    entered correctly and the DNS A/AAAA record(s) for that domain
    contain(s) the right IP address. Additionally, please check that
    your computer has a publicly routable IP address and that no
    firewalls are preventing the server from communicating with the
    client. If you’re using the webroot plugin, you should also verify
    that you are serving files from the webroot path you provided.

    Ich habe die Ports 80 und 443 für den Pi freigegeben und habe eine öffentliche IP4-Verbindung. In Bezug auf die Firewall habe ich keine mir sinnvoll erscheinenden Einstellungen gefunden.

    In Deiner Beschreibung nutzt Du ja einen anderen DynDNS-Anbieter. Wahrscheinlich klappt das bei mir auch, aber ich würde sehr gern versuchen, alles über die myFritz!-DNS machen.

    Hättest Du da vielleicht eine Idee für mich? Vielen Dank schon einmal im Voraus!

    • Hallo John,
      Ich habe MyFritz nur mal kurz getestet und konnte mich damit nie anfreunden. Ob Portweiterleitungen da genau so funktionieren weiß ich nicht.
      kannst du deine Nextcloud denn unverschlüsselt (http anstatt https) über […].myfritz.net erreichen, oder landest du auf der Loginseite der Fritzbox? Nur wenn die Nextcloud über diese Adresse erreichbar ist, klappt auch das Ausstellen des Let’s Encrypt Zertifikats.
      Fall das nicht klappt, würde ich testen ob du direkt über die Eingabe deiner öffentlichen IP-Adresse im Browser auf der Nextcloud landest. Wenn das auch nicht klappt, stimmt irgendwas mit der Portweiterleitung nicht.

    • Hallo John,
      bei mir hat es jetzt geklappt mit myfritz. Erst hatte ich es mit „normalen“ Portfreigaben auf 80 und 443 versucht (Internet -> Freigaben -> Gerät für Freigaben hinzufügen -> Neue Freigabe), bin aber trotzdem (und obwohl „MyFRITZ!-Internetzugriff“ nicht aktiviert ist) bei Eingabe meiner MyFRITZ!-Adresse auf der Anmeldeseite der Fritzbox gelandet. Wenn ich den _externen_ Port der Freigabe ändere (hab z.B. 4430 genommen) dann komm ich zwar auf die Nextcloud-Anmeldeseite aber dann geht letsencrypt nicht, da hier die Ports 80 und 443 fest sind.
      Ich habe dann die Portfreigaben wieder geöscht und „MyFRITZ!-Freigabe“ verwendet. Wieder für HTTP und HTTPs. „Verzeichnis“ bleibt frei. Wenn ich nach dem Anlegen über den Edit-Button (Stift) nochmal in das Menu gehe, sehe ich im vorher freien Feld „MyFRITZ!-Adresse“ jetzt sowas wie „https://nextcloudpi.​abc123.​myfritz.​net:443“. Damit habe ich jetzt eine eigene Adresse für die Nextcloud die ich im NextcloudPi-Panel bei letsencrypt (ohne „https://“ und ohne „:443“) eintrage. Blöderweise musste ich dann noch HTTPS-Zwang / „Force HTTPS“ ausschalten, damit das Beantragen des Zertifikats klappt. Hoffe, ich hab jetzt nix wesentliches vergessen…

  5. Im Zusammenhang mit meinem myfritz-Kommentar hab ich auch noch ne Frage: Wenn ich bei einem Gerät, das sich im gleichen WLAN-Heimnetz wie der NextCloudPi befindet, die Adresse „https://nextcloudpi.​abc123.​myfritz.​net“ verwende, dann geht die DNS-Auflösung übers externe Internet, aber der Datenverkehr findet direkt GerätFritzboxRaspberryPi statt (ohne Umweg über „draußen“), oder?

  6. Hallo,
    Ich habe folgendes Problem: Nach 100%-ig-korrekter Durchführung deiner drei Teile (super Anleitung übringens) habe ich leider feststellen müssen, dass das nicht funktoiniert. Ich komme über meine no-ip DDns nicht rein. Egal was ich mache, es funktioniert einfach nicht.
    Ausgangssituation:
    Raspi 4 B mit SSD als nextcloud eingerichtet – soweit funktioniert alles, komme intern rein – passt also.
    Fritzbox: ich benutze die neueste 6591, wo ich alle Portfreigaben gemacht habe und Dynns auch korrekt eingerichtet ist – passt also.
    Nextcloudpi Control pannel: Dort ist auch alles durchgeführt worden – nur bin ich nur bis zu deinem 2. Part bis dyndns einrichten gekommen – dort erschien wieder mal eine Fehlermeldung mit „timed out“.

    Wo liegt nun also der Fehler? An meinem no-ip Dienst? An meiner Fritz-Box? An Nextcloud selbst? An meiner DS-Lite verbindung?

    • Hallo,
      jetzt wird es klarer. Normales DynDNS an eine Kabelanschluss mit DS-Lite klappt leider nicht. Über IPv4 kommst du nicht von außen in dein Heimnetz. Vorausgesetzt du hast immer eine IPv6-Verbindung wenn du von außerhalb auf deine Nextcloud zugreifen willst, dann kannst du den Myfritz-Dienst anstatt Dyndns verwenden. Da jedes Gerät eine eigene externe IPv6-Adresse bekommt, benötigt auch jedes Gerät eine eigene Dyndns-Domain. Das macht MyFritz automatisch.
      Damit der Zugriff mit IPv4 funktioniert musst du dir mit einem Relay-Dienst behelfen, wie in https://bitreporter.de/fritzbox/zugriff-zum-heimnetz-trotz-ds-lite-ohne-ipv4-adresse/ beschrieben. Der übersetzt quasi von IPv4 nach IPv6.
      Mit DS-Lite ist es auf jeden Fall immer kompliziert.

Hinterlasse einen Kommentar

Bitte geben Sie Ihren Kommentar ein!
Die Angabe von Name oder Webseite ist optional. Weitere Informationen: siehe Datenschutzerklärung

Bitte geben Sie hier Ihren Namen ein