In dem Artikel NodeRed – Benutzerlogin einrichten wurde bereits darauf hingewiesen, dass es sehr wichtig ist den Zugang zu Eurer NodeRed-Konfigurationsoberfläche abzusichern. Gerade wenn Ihr über das Internet auf eure NodeRed-Konfiguration zugreift solltet Ihr sicherstellen, dass wirklich nur Ihr Zugriff darauf habt.
Neben der Einrichtung eines Benutzerlogins ist es auch wichtig und nützlich die Verbindung zwischen Eurem Browser und dem NodeRed-Server zu verschlüsseln.
Wie Ihr dabei vorgehen könnt ist im folgenden Artikel beschrieben.
Sicherheitshinweise
Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/
Affiliatelinks/Werbelinks
Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂
Voraussetzungen
Hilfreiche Artikel:
Damit Ihr einen Benutzerlogin einrichten könnt sollte NodeRed natürlich schon installiert sein.
Wie ihr einen RaspberryPi dazu vorbereitet und dann NodeRed darauf installiert ist in den folgenden Artikeln beschrieben.
Die folgenden drei Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
RaspberryPi – Einrichten für Nerdiys!
RaspberryPi – Die Erste Konfiguration!
RaspberryPi – Den RaspberryPi über SSH steuern
NodeRed – Installation von NodeRed auf dem RaspberryPi
Benötigtes Material:
-keins-
Benötigtes Material:
In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.
Per SSH auf dem RaspberryPi einloggen
Um zu beginnen müsst Ihr Euch als erstes mit Putty per SSH auf dem RasPi einloggen. Wie das geht ist im Artikel RaspberryPi - Den RaspberryPi über SSH steuern beschrieben.
Ordner für die Zertifikate erstellen
Um die Zertifikatsdateien an einem zentralen Ort speichern zu können empfiehlt es sich einen Ordner im NodeRed Verzeichnis zu erstellen. Sofern Euere „.node-red“-Ordner in Eurem home-verzeichnis liegt – was der Fall sein sollte, wenn Ihr NodeRed mit dem Installationsskript installiert habt – könnt ihr einen neuen Ordner mit folgendem Befehl erstellen.
mkdir /home/pi/.node-red/certificates
Nachdem Ihr diesen Befehl ausgeführt habt sollte ein neuer Ordner namens „certificates“ in Eurem „.node-red“ Ordner erstellt worden sein.
In den erstellten Ordner wechseln
Damit die zu erstellenden Zertifikatsdateien auch in diesem neu erstelltem Ordner gespeichert werden solltet ihr nun mit folgendem Befehl in diesen wechseln.
cd /home/pi/.node-red/certificates/
Zertifikatsdateien erzeugen
Damit die Verschlüsselung Eurer Verbindung zu Node-Red funktioniert müsst Ihr ein paar Zertifikatsdateien erstellen. Mit folgendem Befehel erstellt Ihr eine Schlüsseldatei.
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt
Pfad zu den Zertifikatsdateien in die NodeRed-Konfigurationsdatei eintragen
Nun müsst Ihr Eurere NodeRed-Installation noch mitteilen, dass die Verbindung in Zukunft verschlüsselt ablaufen soll. Außerdem müsst Ihr dazu angeben wo eure soeben erstellten Zertifikatsdateien liegen.
Diese Informationen müssen in die Konfigurationsdatei von NodeRed eingetragen werden. Öffnet dazu Eure NodeRed-Konfigurationsdatei mit folgendem Befehl:
sudo nano /home/pi/.node-red/settings.js
Damit dieser Funktionsblock aber auch die Pfade zu Euren Zertifikatsdateien enthält müsst Ihr diese noch angeben. Dazu kopiert Ihr folgenden Text in den Funktionsblock.
key: fs.readFileSync('/home/pi/.node-red/certificates/key.pem'), cert: fs.readFileSync('/home/pi/.node-red/certificates/server.crt')
NodeRed neu starten
Damit die eingetragenen Änderungen in der Konfigurationsdatei nun auch übernommen werden müsst Ihr NodeRed nun neu starten. Dies geht mit folgendem Befehl.
sudo service nodered restart
NodeRed Konfigurationsseite aufrufen
Nach dem Ihr NodeRed neugestartet habt werdet ihr sehen, dass eure NodeRed-Installation unter der alten URL nicht mehr erreichbar ist. Dies liegt daran, dass Ihr vorher über „http://“ auf eure NodeRed-Konfigurationsseite zugegriffen habt, diese nun aber nur noch unter „https://“ erreichbar ist. Die Screenshots zeigen den Weg mit dem browser Google Chrome. Bei anderen Browsern ist dieser Weg aber ähnlich.
Damit ihr nun wieder auf Eure NodeRed-Konfigurationsseite zugreifen könnt müsst Ihr der URL zu Eurer NodeRed-Konfigurationsseite ein „https://“ voranstellen.
Die meisten Browser warnen an dieser Stelle nun davor, dass das Zertifikat mit dem Ihr Eure Verindung verschlüsselt selbstsigniert ist und somit nicht von einer dritten Stelle validiert ist. Auf normalen Webseiten ist dies tatsächlich ein Problem, weil dies darauf hinweisen kann, dass die angeblich sichere Verbindung in wirklichkeit doch nicht sicher ist. In diesem Fall ist es aber in Ordnung, weil wir das Zertifikat ja soeben selbst erstellt haben.
Um die Warnung zu umgehen klickt ihr auf „Erweitert“…
…und dann auf „Weiter zu …“. Nun werdet Ihr auf die gewohnte Konfigurationsseite euer NodeRed-Installation weitergeleitet.
Viel Spaß mit dem Projekt
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂
Hallo,
vielen Dank für Deinen Beitrag.
Mich stört diese Sicherheitswarnung und alle anderen User in meinem Haushalt auch. Mal eben nach der Zimmertemperatur schauen ist immer mit einigen Klicks verbunden.
Wie kann ich die Sicherheitswarnung des Browsers (wenn ich das Dasboard öffne) umgehen?
Ich habe Node-Red auf einem Raspberry laufen.
Vielen Dank und schöne Grüße
Hi Commendation,
gerne. 🙂
Das Problem damit ist, dass das selbst signierte Zertifikat vom Browser nicht akzeptiert wird. Das ist eigentlich so gewollt aber natürlich nervig.
Du hast soweit ich weiß zwei Möglichkeiten:
– Auf jedem Gerät das Zertifikat installieren. Ich hab leider keine Annleitung dazu glaube aber auch, dass das nur eine Option für Windows wäre. Auf Android/Apple Geräten ist das (soweit ich weiß) aus Sicherheitsgründen nicht möglich.
– Da wäre vllt. Option zwei möglich: Mit LetsEncrypt lassen sich signierte SSL Zertifikate erstellen. Leider habe ich dazu auch keine Anleitung. Aber vllt. hilft das folgende ja weiter. 🙂
https://discourse.nodered.org/t/node-red-ssl-using-letsencrypt-certbot/17606
Beste Grüße
Fabian