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 te kunnen opslaan, is het aan te raden om een map aan te maken in de NodeRed directory. Als uw map “.node-red” zich in uw thuismap bevindt - wat het geval zou moeten zijn als u NodeRed met het installatiescript hebt geïnstalleerd - kunt u een nieuwe map maken met de volgende opdracht.

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

Na het uitvoeren van deze opdracht zou er een nieuwe map met de naam “certificaten” moeten zijn aangemaakt in uw 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 vóór “var fs = requiere(“fs”);”. Hiermee wordt een functie geladen waarmee NodeRed toegang krijgt tot de certificaatbestanden.
Gebruik nu de pijltjestoetsen om omlaag te navigeren naar de opgegeven positie in het configuratiebestand.
Eenmaal daar verwijdert u de schuine strepen vóór 'https: {' en de regel drie regels daaronder met '}'. Als u de schuine strepen verwijdert, wordt dit functieblok en de instellingen die het bevat geactiveerd.

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 vindt u een paar regels hieronder. Daar moet je de twee schuine strepen vóór “requireHttps: true” verwijderen. Dit zou ertoe moeten leiden dat u automatisch wordt doorgestuurd naar de beveiligde verbinding als u via een onveilige verbinding toegang probeert te krijgen tot NodeRed. LET OP: Zorg ervoor dat er een komma achter “requireHttps: true” staat. Als dit ontbreekt, zal uw NodeRed-installatie niet correct starten.
Nadat u alle wijzigingen heeft aangebracht, kunt u het configuratiebestand weer sluiten. Om dit te doen, drukt u op “CTRL+X”…
...en bevestig de aanvraag 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

Nadat u NodeRed opnieuw heeft opgestart, zult u zien dat uw NodeRed-installatie niet meer toegankelijk is onder de oude URL. Dit komt omdat u voorheen uw NodeRed-configuratiepagina benaderde via “http://”, maar deze nu alleen toegankelijk is via “https://”. De screenshots wijzen 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 ervoor te zorgen dat u nu weer toegang heeft tot uw NodeRed-configuratiepagina, moet u de URL van uw NodeRed-configuratiepagina vooraf laten gaan door “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 vervolgens op "Doorgaan naar...". U wordt nu 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.