Verschlüsselter Zugriff per HTTPS/SSL
veraltet - update erforderlich
nur relevant für MS Gen 1
Diskussionen über diese Anleitung bitte im LoxForum führen: https://www.loxforum.com/forum/faqs-tutorials-howto-s/10918-howto-miniserver-per-https-erreichbar-machen-apache-reverse-proxy
Achtung! Ein verschlüsselter Zugriff auf die Weboberfläche stellt keinen ausreichenden Schutz dar um seinen Miniserver von Extern erreichbar zu machen und "aus dem Internet" auf den Miniserver zuzugreifen! Die Übertragung erfolgt zwar verschlüsselt, der Miniserver ist aber trotzdem direkt für alle aus dem Internet erreichbar und somit ein direktes Angriffsziel!
Nur eine gesicherte VPN-Verbindung bietet ausreichenden Schutz, um den Miniserver von Extern aus erreichbar zu machen!
Die nachfolgende Anleitung beschreibt, wie man mit Hilfe eines Proxy-Servers auf Apache-Basis (Reverse-Proxy) den Miniserver über eine per SSL gesicherte (verschlüsselte) Verbindung erreichbar machen kann. Der Zugriff auf das Webinterface ist so verschlüsselt möglich. Der Apache-Server muss dabei im lokalen Netz installiert werden, z. B. auf einem RaspberryPi oder einem vorhandenen NAS-Server.
Wer seinen Miniserver per HTTPS erreichbar machen möchte kann das über einen kleinen Proxyserver (z. B. auf einem Raspberry) einrichten. Die HTTPS-Verbindung wird dabei über den aProxy abgewickelt. Dieser leitet im Prinzip die Anfragen dann per HTTP (unverschlüsselt) weiter an den Miniserver.
Voraussetzungen:
Der Proxy muss extern erreichbar sein
Webserver Apache 2.4.5 oder höher (das neueste Raspbian bzw. Debian GNU/Linux 8 ist damit ausgestattet)
Etwas Erfahrung beim Einrichten des Apache
Die Classic-Version der Weboberfäche
Die folgende Anleitung funktioniert nur, wenn Du noch die Classic-Weboberfläche verwendest! Für die neue Webanwendung im Design der LoxoneApp V4 und neuer existiert leider noch keine Lösung. Sobald eine Lösung im Loxone Forum veröffentlicht wird, wird sie auch hier ergänzt werden.
Wie Du auf die Classic-Weboberfläche wechseln kannst, ist in diesem Posting im Loxone Forum beschrieben: https://www.loxforum.com/forum/german/software-konfiguration-programm-und-visualisierung/30851-v-7-3-und-altes-webinterface?p=33125#post33125
Einrichten:
Miniserver über eine feste IP-Adresse im Netzwerk erreichbar machen (kein DHCP).
Apache konfigurieren. Dazu den entsprechenden virtuellen Server erweitern. Oft liegt die entsprechende Konfigurationsdatei unter /etc/apache2/sites-available/default-ssl.conf. In diesme Beisoiel ist der Miniserver später über die URL https://DEINPROXYSERVER/miniserver erreichbar.
# SSL Support aktivieren
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyCheckPeerExpire Off
# Reverse Proxy fuer Miniserver
ProxyPass /miniserver/login.js !
ProxyPass /miniserver/internal.min.js !
ProxyPass /miniserver/ws ws://LOKALE_IP_MINISERVER/ws/
ProxyPass /miniserver/ http://LOKALE_IP_MINISERVER/
ProxyPassReverse /miniserver/ http://LOKALE_IP_MINISERVER/
Entsprechende Apache-Module aktivieren:
sudo a2ensite loxone
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo apache2ctl configtest
Apache neu starten:
sudo /etc/init.d/apache2 reload
Nun im DocumentRoot des Apache das Verzeichnis "miniserver" anlegen. Normalerweise liegt der DocumentRoot unter /var/www.
Nun muss man 2 Dateien vom Miniserver herunterladen und lokal auf dem Proxy speichern. Achtung! Wenn man einen Versionswechsel auf dem Miniserver macht, sind die nachfolgenden Schritte jedas mal wieder auszuführen! Diese beiden Dateien müssen noch angepasst werden. Der Proxy (siehe oben) ist so konfiguriert, dass er diese beiden Dateien nicht vom Miniserver ausliefert sondern seine eigenen versionen an den Browser des Clients zurückliefert.
Beide Dateien muss man nun mit einem Texteditor öffnen. Man sucht zunächst nach "ws://" und ersetzt dieses durch durch("https:"==document.location.protocol ? "wss" : "ws") + "://" und anschließend sucht ihr noch nach window.location.host + "/ws/" und ersetzt es durch window.location.host + "/miniserver/ws/". Jetzt sucht ihr in beiden Dateien noch nach allen Stellen mit window.location.replace("/"); und ändert das ab in window.location.replace("/miniserver/");.
Das war's.
Getestet mit: 7.1.9.30