Zitat von psilo
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Amazon Alexa Plugin
Einklappen
X
-
Zum Thema weiterkommen: https://knx-user-forum.de/forum/supp...se-proxy/page7
Er hatte ganz seltsame Effekte mit seiner DynDNS domain..
Und ich hatte meine Erfahrungen mit einer Installation auf Raspbian Stretch mal zusammengeschrieben: https://github.com/smarthomeNG/smart...s-ReverseProxy
Einen Kommentar schreiben:
-
was meinst du mit "aber gute FYI warum du die client-zertifikate einsetzt."? "for your information" passt in den satz nicht wirklich?!
Einen Kommentar schreiben:
-
ich wollte seine konfiguration nicht gross aendern.
generell ist port 80 nur für lets-encrypt challenge-response notwendig und convenience zum weiterleiten auf https (wobei ggf. angreifbar durch ssl-strip o.ä.).
websockets und http-auth funktionieren nach meiner (begrenzten) erfahrungen ganz gut zusammen. der browser verwendet hier in der regel einfach die gecachten basic-auth daten, man kriegt eigentlich nichts davon mit. aber gute FYI warum du die client-zertifikate einsetzt.
bist du denn weitergekommen, Max2612 ?
Einen Kommentar schreiben:
-
hotzen wieso sollte er denn überhaupt Port 80 nutzen? sicherheitstechnisch eher weniger ideal..
und wie soll das mit den websockets gehen, wenn du pauschal ne basic auth reinhaengst? die müsste ja auch auf die websocket "location" ziehen? bei mir wollte das nicht, deshalb habe ich jetzt (sinnvollerweise) die clientzertifikate am laufen.
Einen Kommentar schreiben:
-
deine config inkl. dem obigen websocket support aber php-handling nicht veraendert
Code:upstream php { server localhost:9090; } server { listen 80 default_server; server_name xyz.spdns.eu; satisfy any; allow 192.168.1.0/24; deny all; auth_basic "SmartVisu Anmeldung"; auth_basic_user_file /etc/nginx/htpasswd.smartvisu; root /var/www/html; index index.php index.html index.htm; location / { root /var/www/html; index index.html index.php; autoindex on; if ($http_upgrade = websocket) { proxy_pass http://localhost:2424; } } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9090; fastcgi_read_timeout 300; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location /.well-known { allow all; } } # Alexa server { listen 443 ssl default_server; server_name xyz.spdns.eu; access_log /var/log/nginx/alexa.log combined; auth_basic "Alexa"; auth_basic_user_file /etc/nginx/htpasswd.alexa; include /etc/nginx/include.d/common; location / { proxy_pass http://192.168.1.13:9000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Einen Kommentar schreiben:
-
achja: wenn mir noch jemand nen tipp geben könnte, wie ich das letsencrypt zertifikat ohne eine HTTP (ohne S) Connection auf den ReverseProxy automatisch renewen kann, immer her damit.. etwas nervig alle 3 Monate die Firewall auf den Raspi für HTTP zu öffnen und am Router ein Forwarding reinzuhängen.
HTTPS hat letsencrypt irgendwie nicht gemocht
Einen Kommentar schreiben:
-
Bei mir sieht das etwas anders aus.. Da vielleicht eine Muster-Config mit einigen Absicherungsmaßnahmen wie Clientzertifikaten, ausgeschlossenen SSL Ciphers, Ländererkennung etc. auch ganz spannend ist, anbei:
allowed country wird außerhalb ermittelt..Code:server { server_tokens off; if ($allowed_country = no) { return 403; } if ($http_user_agent ~* LWP::Simple|BBBike) { return 403; } if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex) ) { return 403; } listen 443 ssl default_server; server_name xxx.dyndns.de; ## # SSL ## ssl on; ssl_certificate /etc/letsencrypt/live/xxx.dyndns.de/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xxx.dyndns.de/privkey.pem; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_ciphers HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!RC4; ssl_client_certificate /etc/ssl/ca/certs/ca.crt; ssl_crl /etc/ssl/ca/private/ca.crl; ssl_verify_client optional; # client certifcate creation: https://arcweb.co/securing-websites-nginx-and-client-side-certificate-authentication-linux/ ssl_session_timeout 5m; ## # HSTS ## add_header Strict-Transport-Security "max-age 31536000; includeSubDomains"; ## # global ## root /var/www/xxx.dyndns.de; index index.php index.htm index.html; location / { if ($ssl_client_verify != SUCCESS) { return 403; break; } if ($http_upgrade = websocket) { proxy_pass http://192.168.178.100:2424; } if ($http_upgrade != websocket) { return 403; } } location = /privacy.htm { } location /smartVISU { if ($ssl_client_verify != SUCCESS) { return 403; break; } #auth_basic "Restricted Area: smartVISU"; #auth_basic_user_file /etc/nginx/.htpasswd; if ($allowed_country = no) { return 403; } proxy_pass https://192.168.178.100/smartVISU; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /video { if ($ssl_client_verify != SUCCESS) { return 403; break; } #auth_basic "Restricted Area: FlurCam"; #auth_basic_user_file /etc/nginx/.flurcam; if ($allowed_country = no) { return 403; } proxy_pass http://192.168.178.40/video; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Authorization "Basic xxxxxxxxxxxxxxxxxxxxxxx"; } location /alexa { auth_basic "Restricted Area: Alexa"; auth_basic_user_file /etc/nginx/.alexa; if ($allowed_country = no) { return 403; } proxy_pass http://192.168.178.100:9000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /shng { auth_basic "Restricted Area: SmartHomeNG"; auth_basic_user_file /etc/nginx/.shng; if ($allowed_country = no) { return 403; } proxy_pass http://192.168.178.100:8888/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
wie man sieht leite ich neben alexa und den websocket verbindungen auch noch den videostream meiner kamera durch.. auch habe ich das network plugin über basic auth zugreifbar gemacht, um egigeozone zu nutzen.
anstatt localhost würde ich lieber IMMER die IP im Netzwerk nehmen..Zuletzt geändert von psilo; 25.09.2017, 16:18.
Einen Kommentar schreiben:
-
Alles klar, ich versuchs mal im Smartvisu Forum.
Gruß, Max
Einen Kommentar schreiben:
-
Hi Max,
sorry an der Stelle muss ich passen (no pun intended). Da bin ich leider selbst nicht weitergekommen. Sicherlich wird dir aber in dem von dir verlinkten Thread eher geholfen, als hier.
Grüße,
Patrick
Einen Kommentar schreiben:
-
Es wäre ja zu schön gewesen...
Mir ist noch was aufgefallen. Beim externen Aufruf der Visu, kann ich nichts schalten.(Could´nt connect to sh.py server)
Ich hab im Smartvisu-Forum einen passenden Thread dazu gefunden. (https://knx-user-forum.de/forum/supp...-reverse-proxy)
Da sollte folgendes funktionieren:
Zitat von kaiwerner Beitrag anzeigen../sites-enabled/smarthome
Ich hoffe das hilft.Code:server { listen 443 ssl; server_name smarthome.home.***.de; ssl_certificate /etc/ssl/certs/smarthome@***.de.crt; ssl_certificate_key /etc/ssl/private/smarthome_private_key.pem; ssl_client_certificate /etc/ssl/ca/ca.crt; ssl_verify_client on; # ssl_verify_client off; location / { root /var/www/html; index index.html index.php; autoindex on; if ($http_upgrade = websocket) { proxy_pass http://localhost:2424; } } location ~ \.php$ { root /var/www/html; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } } server { listen 80; server_name smarthome.home.***.de; # return 301 https://$server_name$request_uri; location / { root /var/www/html; index index.html index.php; autoindex on; if ($http_upgrade = websocket) { proxy_pass http://localhost:2424; } } location ~ \.php$ { root /var/www/html; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } location /baos { return 301 http://debiantest.home.***.de/baos; } # location ~ ^/post/(.*) { # rewrite ^ http://debiantest.home.***.de/post/$1; # } }
[Edit]
Und in Smartvisu "ws://" durch "wss://" ersetzen und Port von 2424 auf 443 geändert.
Nur leider weiß ich jetzt nicht, wie ich das auf meine nginx Konfiguration umbauen muss.
Ich hab schon mehrere Varianten versucht, aber ohne Erfolg.Code:upstream php { server localhost:9090; } server { listen 80 default_server; server_name xyz.spdns.eu; satisfy any; allow 192.168.1.0/24; deny all; auth_basic "SmartVisu Anmeldung"; auth_basic_user_file /etc/nginx/htpasswd.smartvisu; root /var/www/html; index index.php index.html index.htm; location / { autoindex on; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9090; fastcgi_read_timeout 300; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location /.well-known { allow all; } } # Alexa server { listen 443 ssl default_server; server_name xyz.spdns.eu; access_log /var/log/nginx/alexa.log combined; auth_basic "Alexa"; auth_basic_user_file /etc/nginx/htpasswd.alexa; include /etc/nginx/include.d/common; location / { proxy_pass http://192.168.1.13:9000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Kann mir hier nochmal jemand helfen?
Gruß, MaxZuletzt geändert von Max2612; 25.09.2017, 14:18.
Einen Kommentar schreiben:
-
Alles klar, danke!Zitat von henfri Beitrag anzeigenDen certbot musst du doch eh regelmäßig aufrufen um das Zertifikat zu erneuen
Einen Kommentar schreiben:
-
Den certbot musst du doch eh regelmäßig aufrufen um das Zertifikat zu erneuen
Einen Kommentar schreiben:
-
Den certbot neu ausführen wäre da die Lösung würde ich sagen. Gratulation. Wenn noch was ist.. einfach fragen.
Einen Kommentar schreiben:


Einen Kommentar schreiben: