Hallo,
da ich die letzten 2 Tage damit verbracht habe auf dem Smarthome.pi Image einen Nginx mit SSL (opt. Client Auth) zum laufen zu bringen, wollte ich euch das nicht vorenthalten. Ein großteil der Anleitung bezieht sich auf https://knx-user-forum.de/smarthome-...mit-nginx.html (Danke an mknx und felix86)
Ziel des ganzen ist es, den Zugriff auf die SmartVisu und den Smarthome WebSocket über einen Port und mit SSL verschlüsselt bereitszustellen
Zunächst muss ihr den lighttpd stoppen:
Nun muss der Nginx installiert werden. Die Version aus dem aktuellen Raspbian 7.8 Repo (Version 1.2.1) funktioniert leider nicht mit WebSockets. Entweder nehmt ihr das von mit bereitgestellte Packet (nginx_1.6.2-1~wheezy_armhf.deb.zip) oder baut euch den Nginx selber auf dem System. Das zip entpacken und installieren:
Da die Smartvisu mit Fastcgi arbeitet benötigen wir noch php-fpm
Für die Config vom nginx wird zuächst der Inhalt der Datei /etc/nginx/conf.d/default auskommentier. Die Config für Smartvisu legen wir als /etc/nginx/conf.d/smarthome an (bold muss angepasst werden). Die Einträge ssl_client_certificat und ssl_verify_client sind optional für die Client Authentifizierung.
Nginx und php-fpm müssen wegen den Berechtigungen unter dem Admin user laufen. Hierfür muss in den Dateien /etc/nginx/nginx.conf und /etc/php5/fpm/pool.d/www.conf www-data durch admin ersetzt werden.
Damit der Websocket auch mit SSL funktioniert, müssen in den Dateien /var/www/smartvisu/driver/io_smarthome.py.js und /var/www/smartvisu/driver/io_smarthome.py.min.js "ws://" durch "wss://" ersetzt werden. Diese Anpassungen müsst ihr nach jedem update durchführen.
Zusätzlich muss für die Smartvisu der Port noch von 2424 auf 443 geändert werden. Dies kann entweder in der GUI oder über die /var/www/smartvisu/config.php erfolgen.
Jetzt den php-fpm und nginx noch einmal neu starten und alles sollte laufen:
Hoffentlich habe ich nichts vergessen
da ich die letzten 2 Tage damit verbracht habe auf dem Smarthome.pi Image einen Nginx mit SSL (opt. Client Auth) zum laufen zu bringen, wollte ich euch das nicht vorenthalten. Ein großteil der Anleitung bezieht sich auf https://knx-user-forum.de/smarthome-...mit-nginx.html (Danke an mknx und felix86)
Ziel des ganzen ist es, den Zugriff auf die SmartVisu und den Smarthome WebSocket über einen Port und mit SSL verschlüsselt bereitszustellen
Zunächst muss ihr den lighttpd stoppen:
Code:
/etc/init.d/lighttpd stop
Code:
unzip nginx_1.6.2-1~wheezy_armhf.deb.zip dpgk -i nginx_1.6.2-1~wheezy_armhf.deb
Code:
apt-get install php5-fpm
Code:
server { listen 443 ssl; server_name [B]hostname.domain[/B]; ssl_certificate [B]/etc/pki/certs/server.pem[/B]; ssl_certificate_key [B]/etc/pki/certs/server.key[/B]; ssl_client_certificate [B]/etc/pki/ca/ca.crt[/B]; ssl_verify_client on; location / { root /var/www/smartvisu; index index.html index.php; if ($http_upgrade = websocket) { proxy_pass http://localhost:2424; } } location ~ \.php$ { root /var/www/smartvisu; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME /var/www/smartvisu/$fastcgi_script_name; include fastcgi_params; } } server { listen 80; server_name [B]hostname.domain[/B]; return 301 https://$server_name$request_uri; }
Damit der Websocket auch mit SSL funktioniert, müssen in den Dateien /var/www/smartvisu/driver/io_smarthome.py.js und /var/www/smartvisu/driver/io_smarthome.py.min.js "ws://" durch "wss://" ersetzt werden. Diese Anpassungen müsst ihr nach jedem update durchführen.
Zusätzlich muss für die Smartvisu der Port noch von 2424 auf 443 geändert werden. Dies kann entweder in der GUI oder über die /var/www/smartvisu/config.php erfolgen.
Jetzt den php-fpm und nginx noch einmal neu starten und alles sollte laufen:
Code:
/etc/init.d/php5-fpm restart /etc/init.d/nginx restart

Kommentar