HowTo: Node Red – Versleutel de verbinding

In het artikel NodeRed - Gebruikerslogin instellen heeft er al op gewezen dat het erg belangrijk is om de toegang tot je NodeRed configuratie-interface te beveiligen. Vooral als je toegang hebt tot je NodeRed configuratie via het internet, moet je ervoor zorgen dat alleen jij toegang hebt.

Naast het instellen van een gebruikerslogin, is het ook belangrijk en nuttig om de verbinding tussen je browser en de NodeRed server te versleutelen.

Hoe je te werk moet gaan, wordt beschreven in het volgende artikel.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Handige artikelen:
Om een gebruikerslogin te kunnen instellen, moet NodeRed natuurlijk al geïnstalleerd zijn.
Hoe je een RaspberryPi voorbereidt en vervolgens NodeRed erop installeert, wordt beschreven in de volgende artikelen.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH

NodeRed – NodeRed installeren op de RaspberryPi

Benodigd materiaal:
-Nee-

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Log in op de RaspberryPi via SSH

Om te beginnen moet je eerst inloggen op de Rasp Pi met Putty via SSH. Hoe je dit doet staat in het artikel RaspberryPi - Bedien de RaspberryPi via SSH beschreven.

Na het invoeren van uw gebruikersnaam en wachtwoord kunt u de eerste opdrachten invoeren.

Maak een map voor de certificaten

Om de certificaatbestanden op een centrale locatie op te slaan, is het aan te raden om een map aan te maken in de NodeRed directory. Als je map ".node-red" in je thuismap staat - wat het geval zou moeten zijn als je NodeRed hebt geïnstalleerd met het installatiescript - kun je een nieuwe map aanmaken met het volgende commando.

mkdir /home/pi/.node-red/certificaten

Nadat je dit commando hebt uitgevoerd, zou er een nieuwe map met de naam "certificates" moeten zijn aangemaakt in je map ".node-red".


Ga naar de aangemaakte map

Om ervoor te zorgen dat de aan te maken certificaatbestanden ook in deze nieuw aangemaakte map worden opgeslagen, moet u nu met het volgende commando hiernaar overschakelen.

cd /home/pi/.node-red/certificates/


Certificaatbestanden genereren

Om de versleuteling van je verbinding met Node-Red te laten werken, moet je een paar certificaatbestanden maken. Gebruik het volgende commando om een sleutelbestand aan te maken.

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
Na het invoeren van dit commando wordt je om een paar gegevens gevraagd die in je sleutel worden ingevoerd. Je kunt hier natuurlijk alles correct invullen - voor zover mogelijk - maar dat hoeft niet. Omwille van de eenvoud kun je ook alles blanco laten of (zoals in dit voorbeeld) alleen streepjes invoeren.

openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt

Dit commando maakt een certificaat aan en ondertekent het met de sleutel die je hebt gemaakt.

Voer het pad naar de certificaatbestanden in het NodeRed-configuratiebestand in

Nu moet je je NodeRed-installatie vertellen dat de verbinding in de toekomst versleuteld moet worden. Je moet ook aangeven waar de certificaatbestanden die je zojuist hebt aangemaakt zich bevinden.
Deze informatie moet worden ingevoerd in het configuratiebestand van NodeRed. Open hiervoor je NodeRed-configuratiebestand met het volgende commando:

sudo nano /home/pi/.node-red/settings.js

Verschillende instellingen/waarden moeten worden aangepast in het configuratiebestand.
Verwijder eerst de twee schuine strepen voor "var fs = requiere("fs");". Dit laadt een functie die NodeRed toegang geeft tot de certificaatbestanden.
Gebruik nu de pijltjestoetsen om omlaag te navigeren naar de opgegeven positie in het configuratiebestand.
Verwijder daar de schuine strepen voor "https: {" en de regel drie regels daaronder met "},". Het verwijderen van de schuine strepen activeert dit functieblok en de instellingen die het bevat.

Om ervoor te zorgen dat dit functieblok ook de paden naar uw certificaatbestanden bevat, moet u deze opgeven. Kopieer hiervoor de volgende tekst in het functieblok.

sleutel: fs.readFileSync('/home/pi/.node-red/certificaten/key.pem'), certificaat: fs.readFileSync('/home/pi/.node-red/certificaten/server.crt')
Als je de commando's naar het functieblok hebt gekopieerd, zou het geheel er ongeveer zo uit moeten zien.
De laatste wijziging kun je een paar regels verderop vinden. Daar moet je de twee schuine strepen voor "requireHttps: true," verwijderen. Dit zou je automatisch moeten doorverwijzen naar de beveiligde verbinding als je NodeRed probeert te benaderen via een onbeveiligde verbinding. LET OP: Zorg ervoor dat er een komma staat na "requireHttps: true". Als deze ontbreekt, zal je NodeRed-installatie niet correct starten.
Als je alle wijzigingen hebt aangebracht, kun je het configuratiebestand weer sluiten. Druk hiervoor op "CTRL+X"...
...en bevestigt de vraag met "Y" en "Enter".

Start NodeRed opnieuw

Om de wijzigingen in het configuratiebestand toe te passen, moet je NodeRed nu herstarten. Dit kan met het volgende commando.

sudo service node rood opnieuw opstarten


Ga naar de NodeRed-configuratiepagina

Na het herstarten van NodeRed, zul je zien dat je NodeRed installatie niet langer toegankelijk is onder de oude URL. Dit komt omdat je voorheen je NodeRed-configuratiepagina benaderde via "http://", maar deze is nu alleen toegankelijk onder "https://". De screenshots tonen de weg met de Google Chrome browser. Dit pad is echter vergelijkbaar voor andere browsers.

Toegang via de oude URL is niet langer mogelijk.

Om weer toegang te krijgen tot je NodeRed-configuratiepagina, moet je de URL naar je NodeRed-configuratiepagina vooraf laten gaan door een "https://".

URL naar de configuratiepagina voorafgegaan door "https://".

De meeste browsers waarschuwen op dit punt dat het certificaat waarmee je je verbinding versleutelt zelf is ondertekend en dus niet door een derde partij is gevalideerd. Op normale websites is dit inderdaad een probleem, omdat het erop kan wijzen dat de zogenaamd beveiligde verbinding in werkelijkheid niet veilig is. In dit geval is het echter OK, omdat we het certificaat gewoon zelf hebben aangemaakt.

Browserbeveiligingswaarschuwing (in dit geval Google Chrome).

Om de waarschuwing te omzeilen, klikt u op "Geavanceerd"....

...en klik dan op "Doorgaan naar ...". Nu wordt u doorgestuurd naar de gebruikelijke configuratiepagina van uw NodeRed-installatie.

NodeRed configuratiepagina opgeroepen met nu versleutelde verbinding.

Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

2 comments

  1. Hallo,
    Bedankt voor je bijdrage.

    Deze beveiligingswaarschuwing stoort mij en ook alle andere gebruikers in mijn huishouden. Het controleren van de kamertemperatuur gaat altijd gepaard met een paar klikken.
    Hoe kan ik de beveiligingswaarschuwing van de browser omzeilen (wanneer ik het dashboard open)?
    Ik gebruik Node-Red op een Raspberry.

    Hartelijk dank en met vriendelijke groet

    1. hallo aanbeveling,
      graag. 🙂
      Het probleem hiermee is dat het zelfondertekende certificaat niet wordt geaccepteerd door de browser. Dit is eigenlijk de bedoeling maar natuurlijk vervelend.
      Voor zover ik weet heb je twee opties:
      – Installeer het certificaat op elk apparaat. Helaas heb ik hier geen instructies voor, maar ik geloof ook dat dit alleen voor Windows een optie zou zijn. Om veiligheidsredenen is dit niet mogelijk op Android/Apple-apparaten (voor zover ik weet).
      - Er zou kunnen zijn Optie twee mogelijk: Ondertekende SSL-certificaten kunnen worden aangemaakt met LetsEncrypt. Helaas heb ik hier ook geen instructies voor. Maar misschien het volgende helpt. 🙂
      https://discourse.nodered.org/t/node-red-ssl-using-letsencrypt-certbot/17606
      Hartelijke groeten
      Fabian

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.