Ankündigung

Einklappen
Keine Ankündigung bisher.

Reverse Proxy

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #76
    TCr82 ich hatte bei mir eine Zeit lang eine öffentliche Seite ohne basic auth online (die von AWS für Alexa geforderte privacy Seite - ich hatte gedacht, die MUSS online sein. ist wohl aber doch nicht so). Da macht das mit den Referren mehr Sinn. Es schadet aber auch nicht?! Daher lieber zu viel als zu wenig.

    Zu den basic auths: ich habe für Alexa, das Network Plugin, die SmartVISU und meine Synology Photo Station unterschiedliche Files.. Auch da macht es Sinn mehrere Einträge zu haben. Ich will ja nicht, dass jeder der die Photos ansehen darf, auch Zugriff auf die Haussteuerung hat..

    Ich wollte das Beispiel aber einfacher halten, so detailliere ich das jetzt aber besser doch..

    Kommentar


      #77
      So, ich habe mal die Clientzertifikate ergänzt. Ist leider ein bischen ein "Gefrickel" die zu erstellen. Wäre klasse wenn das mal jemand nachtesten kann..

      Das mit dem SSH Port habe ich rausgeworfen und im Beispiel jetzt 3 Passwort-Files angegeben (was mE. Sinn macht).

      https://github.com/smarthomeNG/smart...s-ReverseProxy

      Kommentar


        #78
        Hallo,

        ich bin jetzt bei der Konfiguration dem neuen Beispiel gefolgt.
        2 Fragen bleiben aber noch offen.

        1. Beim externen Aufruf über https kommt die Frage nach Bentzer und Passwort. Soll ja auch so sein.
        Aber über http komme ich gleich zur Visu. Das sollte doch nicht sein, oder?

        2. Wie muss jetzt die Einstellung in der sv (2.8) ausschauen, dass die websockets funktionieren?

        Meine conf
        Code:
        server {
                listen 80 default_server;
                listen [::]:80 default_server;
               # include /etc/nginx/snippets/letsencrypt.conf;
        }
        
        server {
            server_tokens off;
        
            listen 443 ssl default_server;
            server_name xxx.spdns.org;
        
            ##
            # SSL
            ##
        
            ssl on;
            ssl_certificate /etc/letsencrypt/live/xxx.spdns.org/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/xxx.spdns.org/privkey.pem;
            ssl_session_cache builtin:1000 shared:SSL:10m;
            ssl_ciphers    HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!RC4;
        
            add_header Strict-Transport-Security "max-age 31536000; includeSubDomains";
        
            ##
            # global
            ##
        
            root /var/www/html/xxx.spdns.org;
            index index.php index.htm index.html;
        
          location / {
                auth_basic "Restricted Area: smartVISU";
                auth_basic_user_file /etc/nginx/htpasswd.smartvisu;
        
                # Nur Websocket Verbindungen gegen "/" durchlassen!
                if ($http_upgrade = websocket) {
                        proxy_pass http://192.168.1.13:2424;
                }
                if ($http_upgrade != websocket) {
                        return 403;
                }
            }
        
          location /smartVISU {
        
                auth_basic "Restricted Area: smartVISU";
                auth_basic_user_file /etc/nginx/htpasswd.smartvisu;
        
            proxy_pass http://192.168.1.13/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 /smartVISU2.9 {
        
                # auth_basic "Restricted Area: smartVISU";
                # auth_basic_user_file /etc/nginx/htpasswd.smartvisu;
        
            proxy_pass http://192.168.1.13/smartVISU2.9;
                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 /alexa {
                auth_basic "Restricted Area: Alexa";
                auth_basic_user_file /etc/nginx/htpasswd.alexa;
        
                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;
                proxy_set_header X-Forwarded-Proto $scheme;
            }  
        
        
        }

        Kommentar


          #79
          1. Wieso definierst du ein explizites listen für http? Im Gegenteil solltest du gemäss Anleitung dieses sogar in den Defaulteinstellungen entfernen.
          Andererseits kann man das natürlich auch als Feature nutzen: Aus dem LAN nutzt man http ohne Authentisierung, im Router gibt man dann Port 443 für die Nutzung azs dem Internet frei. Das geht aber erst mit der kommenden Version der smartVISU, wegen dem dynamischen Port.

          2. Als Hostname gibst du deine Dyndns-Adresse ein, als Port 443.
          In der kommenden Version kann man einfach beide Felder leer lassen, dann werden diejenigen der Website verwendet.

          Kommentar


            #80
            Zitat von smai Beitrag anzeigen
            1. Wieso definierst du ein explizites listen für http? Im Gegenteil solltest du gemäss Anleitung dieses sogar in den Defaulteinstellungen entfernen.
            Andererseits kann man das natürlich auch als Feature nutzen: Aus dem LAN nutzt man http ohne Authentisierung, im Router gibt man dann Port 443 für die Nutzung azs dem Internet frei. Das geht aber erst mit der kommenden Version der smartVISU, wegen dem dynamischen Port.

            2. Als Hostname gibst du deine Dyndns-Adresse ein, als Port 443.
            In der kommenden Version kann man einfach beide Felder leer lassen, dann werden diejenigen der Website verwendet.
            1. Ist gelöst. Im Router war noch Port 80 weitergeleitet.
            2. Das klappt aber trotzdem nicht. "Could not connect to sh.py Server"

            Edit: Von extern, kann ich jetzt schalten. Aber intern über "192.168.1.13/smartVISU" bleibt der Fehler!
            Zuletzt geändert von Max2612; 30.09.2017, 09:15.

            Kommentar


              #81
              Max2612 In der Anleitung steht ja, dass Port 80 nur bis zur Let's Encrypt Zertifikateerstellung offen sein sollte - Beim Verlängern nach 3 Monaten musst Du sie auch wieder aufmachen glaube ich.. Ich muss das aber nochmal testen. Ich hätte gerne noch eine automatische Erneuerung.. Was mit Zwang zu Port 80 dann nicht gehen würde, da ich ja am Router öffnen muss..

              Für den Betrieb würde ich wie beschrieben in der default Datei für NGINX auf Port 80 einen HTTP Error Code zurückgeben (auch wenn ohne Weiterleitung keiner draufkommen sollte - aber ich bin manchmal etwas paranoid..)

              Was sagt denn die Webentwickler Console (F12) wo die Websocket Requests hingehen?
              Zuletzt geändert von psilo; 30.09.2017, 09:24.

              Kommentar


                #82
                PS: ruf die Visu "intern" doch einfach auch über Deine Domain - also von extern - auf. die Websockets bleiben ja sowieso gegen die Domain konfiguriert.. Performancetechnisch bringt das also nicht viel.

                Gehst Du "intern" mit der IP auf "http"? Dann kann es nicht gehen:

                ich glaube die Websocket Verbindung sucht sich das ws oder wss je nach http oder https aus mit dem die SmartVISU aufgerufen wurde.

                Und die Websockets gehen dann ja auf deine Domain.. und Port 80 ist zu..

                ruf die IP mal mit https auf.. dann sagt er zwar das Zertifikat ist falsch, aber es sollte trotzdem gehen. In meinem Fall habe ich auf dem NAS ein lokales Zertifikat, so dass die lokale IP auch mit https "kann"..
                Zuletzt geändert von psilo; 30.09.2017, 09:28.

                Kommentar


                  #83
                  Zitat von psilo Beitrag anzeigen
                  PS: ruf die Visu "intern" doch einfach auch über Deine Domain auf. Gehst Du "intern" auf "http"? Dann kann es nicht gehen:

                  ich glaube die Websocket Verbindung sucht sich das ws oder wss je nach http oder https aus mit dem die SmartVISU aufgerufen wurde.

                  Und die Websockets gehen dann ja auf deine Domain.. und Port 80 ist zu..

                  ruf die IP mal mit https auf.. dann sagt er zwar das Zertifikat ist falsch, aber es sollte trotzdem gehen.
                  Intern komme ich aber über "https://meine-domain/smartVISU" garnicht drauf. Da meldet der Browser: Die Website ist nicht erreichbar.

                  Kommentar


                    #84
                    Max2612 hää?? Du kommst bspw. vom Handy aus dem Mobilfunknetz drauf, aber nicht von einem Browser im LAN? Kannst Du Deine Domain pingen? Das klingt mir ziemlich faul... Wie testest Du denn überhaupt, von "extern" zu schalten???

                    Egal wo Du bist wird eine Anfrage ins "Internet" gemacht. Außer Dein LAN lässt Dich nicht raus... :> Dann könntest Du hier aber auch nicht posten.
                    Zuletzt geändert von psilo; 30.09.2017, 09:32.

                    Kommentar


                      #85
                      Ping funktioniert nicht

                      Vom Mobilfunknetz über https auf die Visu -- Licht xxx schalten -- funktioniert!
                      Zuletzt geändert von Max2612; 30.09.2017, 09:37.

                      Kommentar


                        #86
                        Wie kannst Du dann von extern schalten??? Was heisst "extern" schalten für Dich?

                        Ist Port 443 richtig geforwarded? Löst er wenigstens beim PING via DNS die Domain in die richtige Internet IP auf?

                        Wie hast Du überhaupt die Let's Encrypt Zertifikate hinbekommen wenn man nicht zugreifen kann..

                        Irgendwie check ichs nicht.


                        Probier mal https Zugriff von "intern" gegen die Internet-IP. Geht das?
                        Das sieht mir aber echt eher nach einem allgemeinen Problem in Deinem Heimnetzwerk aus...
                        Zuletzt geändert von psilo; 30.09.2017, 09:39.

                        Kommentar


                          #87
                          Also extern heißt für mich, vom Mobilfunknetz.
                          Intern heißt über meinen PC im LAN.

                          Port 443 geht an die IP, wo Nginx läuft auf Port 443

                          Kommentar


                            #88
                            Mit Port 80 ging das aber schon aus dem Heimnetz????

                            Löst der PING die IP korrekt auf?

                            Was ist wenn Du anstatt der dyndns Sache direkt die Internet IP in die SV konfigurierst und aufrufst.

                            Vielleicht solltest Du besser auf GITTER kommen...

                            Kommentar


                              #89
                              Die Weiterleitung müsste passen, sonst würde es ja vom Handy nicht gehen... Ich vermute irgendwas ist in Deinem Heimnetzwerk verkorkst... Oder Du vertippst Dich bei der URL Eingabe im Browser oder ähnliches

                              Kommentar


                                #90
                                Zitat von psilo Beitrag anzeigen

                                Löst der PING die IP korrekt auf?
                                Wie kann ich das testen?

                                Edit: Ja, sie wird korrekt aufgelöst.
                                Zuletzt geändert von Max2612; 30.09.2017, 09:48.

                                Kommentar

                                Lädt...
                                X