Diese Website verwendet Cookies und ähnliche Technologien!

Falls Sie die damit nicht einverstanden sind, ändern Sie bitte die Einstellungen Ihres Browsers. Mehr erfahren

Ich bin damit einverstanden

 Wir nutzen Cookies um Ihnen das beste Surferlebnis auf unserer Website bieten zu können.

  • Falls Sie dies bestätigen und fortfahren, ohne Ihre Einstellungen zu ändern, gehen wir davon aus, dass sie einverstanden sind alle Cookies unserer Seite zu erhalten:
  • Falls Sie Ihre Einstellung ändern möchten, so finden Sie eine Anleitung dazu hier.

In openHAB BETA 2.0 ist bisher noch kein Security oder Authentifizierungs Feature implementiert. Um es also vor unerlaubten Zugriffen aus dem Internet zu schütze habe ich mit nginx einen Reverse Proxy erstellt, der nach einer Loginmaske die Anfrage an die openhab UI weiterleitet.

! Update: Zwischenzeitlich wurde eine openhab Dokumentation erstellt, die die Einrichtung beschreibt: http://docs.openhab.org/configuration/nginx.html
Bitte ziehe diese Anleitung der hier folgenden vor, da unsere Lösung wahrscheinlich ein paar Fehler enthält.

Grundstruktur

Hier die Struktur im Detail:

  • Ein DNS Server verlinkt ein statisches Subdomain auf die aktuelle IP des Routers zwischen openhab und dem Internet (nicht Teil dieses Artikels)
  • Der Router leitet Port 443 (HTTPS) durch die Firewall auf den nginx Server (any Port, but chose 443 in my case as well) (nicht Teil dieses Artikels)
  • nginx verlangt eine Benutzerauthentifizierung bevor der den Besucher zu openhab auf Port 8080 auf dem gleichen Server weiterleitet  (ja! Hierum geht es in diesem Artikel)

nginx installieren

nginx wird mit diesen Befehlen installiert:

sudo apt-get update
sudo apt-get install nginx

Ein Zertifikat für die Verschlüsselung erstellen:

Um HTTPS-Anfragen akzeptieren zu können, bedarf es einem neuem Paar von einem SSL-Zertifikat samt zugehörigem Privaten-Schlüssel. Man kann dieses mithilfe von openssl selbst erstellen:

cd /etc/nginx
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt

Benutzerdaten mit apache2-utils hinterlegen

Im gleichen Ordner erstellen wir nun eine .htpasswd Datei in der wir den Benutzername und das gehashte Passwort abspeichern.

Dazu benötigen wir apache2-utils, das wie folgt installiert werden kann:
sudo apt-get install apache2-utils

Anschließen nutzt man folgenden Befehl um einen User mit einem <USERNAME> seiner Wahl zu erstellen. Daraufhin wird man nach einem Passwort, sowie einer Bestätigung des Passworts durch erneute Eingabe aufgefordert.
sudo htpasswd -c /etc/nginx/.htpasswd <USERNAME>

nginx Konfigurieren

Erstelle folgende Datei

sudo nano /etc/nginx/sites-enabled/default

mit diesem Inhalt:

Konfiguration testen

Um die Konfiguration zu testen, gibt man folgenden Befehl ein. Auftretende Fehler werden samt Fehlermeldung ausgespuckt. Ansonsten quittiert nginx den erfolgreichen Test mit einem [OK]

sudo nginx -t

nginx neuladen

Abschließend laden wir die neue Konfiguration mit foldendem Befehl:

sudo service nginx reload

weiterführende Links

Dieser Artikel wurde mit Hilfe folgender Quellen zusammengestellt:

Kommentar schreiben

Sicherheitscode
Aktualisieren