Zugriff auf ioBroker von außen über Reverse Proxy

Die nachfolgende Anleitung beschreibt die Einrichtung eines Apache Webservers als Reverse-Proxy für die folgenden Komponenten:

  • ioBroker VIS/Flot/Rickshaw
  • ioBroker Admin
  • ioBroker node-red
  • ioBroker socket-io im Web-Adapter (für App)
  • Zugriff auf CCU1/2

Der Zugriff wird hierbei extern vollständig mittels SSL verschlüsselt. Die Authentifizierung erfolgt unabhängig von den Komponenten direkt durch den Apache-Server mittels http-Authentifizierung bzw. über URL-Parameter (App).

Voraussetzung ist eine bereits auf dem System vorgenommene Installation von Apache 2.4.x.
Hierfür ist unter Debian mindestens Jessie erforderlich.

Die Installation von Apache erfolgt unter Debian über apt-get:

Zuerst System aktualisieren:

Danach Apache installieren:

Nun noch die benötigten Module installieren:

Für andere Systeme kann das Installationsverfahren von Apache und der Module abweichen.

Die Module müssen per Kommando aktualisiert werden:

 

Steckbrief

Art des Scripts Komplettscript
Aktuelle Version
Voraussetzungen
Entwickler
Stichworte
Zusatzinformation
Forendiskussion zum Forum

Script

Template für Site-Konfigurationsdatei:

Weitere Details sind über die Kommentare innerhalb der Datei beschrieben.

Die Template-Datei ist das sites-Verzeichnis z.B. mit dem namen ssl-config.conf zu kopieren. Dies ist unter Debian normalerweise:

Danach sind in der Datei alle Platzhalter in eckigen Klammern [ ] durch die eigenen Werte auszutauschen. Hierbei sind ebenfalls die Klammern zu entfernen.
Die Site kann anschließend mit dem folgenden Kommandos aktiviert werden:

Um von extern zugreifen zu können, ist im Router eine Forwarding-Regel einzutragen, die den gesamten Verkehr auf Port 443 auf die interne IP-Adresse des Apache-Webservers (ebenfalls Port 443) weiterleitet.
Soweit das Netz von außen nicht über eine statische IP-Adresse erreichbar ist, ist ein dynamischer DNS-Name wie z.B. von dyndns.com erforderlich, der vom Router periodisch mit der aktuellen IP-Adresse versorgt wird. Der DNS-Name ist im Skript an den entsprechenden Stellen einzutragen, damit die Weiterleitung vollständig funktioniert.

Die Verschlüsselung erfordert ein Zertifikat und ein Key-File. Die Pfade auf diese Dateien müssen in der Datei korrekt eingetragen werden.

Die Benutzerprüfung erfolgt über eine Kennwortdatei. Diese Datei muss manuell über das folgende Kommando erzeugt werden: