Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. IoBroker (und vis) über ReverseProxy

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

IoBroker (und vis) über ReverseProxy

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
71 Beiträge 19 Kommentatoren 21.8k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • wtfkaW Offline
    wtfkaW Offline
    wtfka
    schrieb am zuletzt editiert von
    #54

    @nobody:

    Hallo Sascha,

    ich hab mit Bluefox gesprochen und wir haben doch eine Lösung für die Unterscheidung gefunden:

    Die Socket-IO-Aufrufe für VIS haben den Parameter key, die für Javascript jedoch nicht. Deswegen habe ich das Skript entsprechend angepasst:

    Hier der aktuelle Stand des Skripts:

    # Dieses Template enthält Rewrite-Regeln für die Verwendung von Apache 2.4.x als Reverse Proxy mit SSL-Unterstützung für die folgenden Komponenten:
    # - ioBroker VIS/Flot/Rickshaw
    # - ioBroker Admin
    # - ioBroker node-red
    # - ioBroker socket-io im Web-Adapter
    # - Zugriff auf CCU1/2
    # - ioBroker Javascript-Adapter
    #
    # folgende Module müssen in Apache mindestens installiert und aktiviert sein:
    # - ssl
    # - proxy
    # - rewrite
    # - proxy_wstunnel
    # - mpm_prefork
    # - mod_auth_basic
    # - mod_authn_file  -- oder andere Authentifizierungsquelle
    # 
    # Alle Einträge in eckigen Klammern [] sind durch die eigenen Daten zu ersetzen.
    #
    # Die Berechtigungsprüfung erfolgt durch Apache mittels HTTP-Basic Authentication oder Parameter an der URL.  Dies hat den Vorteil, das unberechtigte Anfragen erst garnicht zu den Systemen gelangen.
    # Da die Verbindung mit SSL/TLS gesichert ist, ist basic-Authentication vollständig ausreichend und am schnellsten. 
    # In den lokalen Systemen ist die Authentifizierung auszuschalten, da die Authentifizierungsdaten nicht durchgereicht werden.
    # Die Skripte gehen davon aus, dass die lokalen Systeme mittels http angesprochen werden. Falls nicht, müssen die Zeilen entsprechend angepasst werden.
    
    # Folgender Teil ist nur erforderlich, wenn man einen lokalen Bereich auf dem Webserver haben möchte, der unter der gleichen URL erreichbar ist (z.B. um statische Daten abzulegen) und bei dem ein Caching durch den Webserver erfolgen soll.
     <ifmodule mod_cache.c="">LoadModule cache_disk_module modules/mod_cache_disk.so
        <ifmodule mod_cache_disk.c="">CacheRoot "/var/www"
            CacheEnable disk  "/"
            CacheDirLevels 5
            CacheDirLength 3</ifmodule> 
    
        # When acting as a proxy, don't cache the list
        CacheDisable "/ccu/"
        CacheDisable "/vis/"
        CacheDisable "/iobroker/"
        CacheDisable "/node-red/"</ifmodule> 
    
    # Oberste Modul-Deklaration für den kompletten durch ssl gesicherten Service
     <ifmodule mod_ssl.c=""># Festlegung des Ports, über den der Server erreichbar sein soll.
       <virtualhost _default_:443="">ServerAdmin [ Email des Administrators (Optional)]
          ServerName [ Externe URL des Servers ohne Protokoll, z.B.  haus.meineurl.de] 
    
          # Stammverzeichnis des Webservers für lokale Inhalte
          DocumentRoot /var/www
    
            # Festlegung der Eigenschaften für das Root-Directory auf dem Webserver und alle Unterverzeichnisse
          <directory>Options FollowSymLinks
             AllowOverride None
    
                # Festlegung der Authentifizierungseigenschaften 
             # Hier wird basic-Authentification mit Liste der berechtigten User konfiguriert.
             # Anleitung zur Konfiguration von Benutzern siehe https://httpd.apache.org/docs/current/howto/auth.html
             AuthType basic
             AuthName "home"
             AuthBasicProvider file
             AuthUserFile /etc/apache2/ssl/httpsusers
    
             # Festlegung, dass die Authentifizierung erfordlich ist. Speziell für die App kann kein Basic-Authentication verwendet werden, da diese Teile im Protokoll nicht enthalten sind.
             # Für die App kann alternativ auf die dort angegeben Daten für User und Password geprüft werden. Diese Werte werden in der URL als Parameter übertragen.
             # Die Werte werden nicht aus der Passwort-Datei ausgelesen sondern müssen hier statisch konfiguriert werden. 
             # Wichtig: Nur der erste Request muss beim Öffnen der Verbindung authentifizieren. 
             # Alle nachfolgenden Request über die gleiche http-Verbindung verwenden automatisch die gleichen Credentials. Deswegen ist beim Zugriff auf VIS die http-Authentifizierung für index.html ausreichend.
             <requireany># Zugriff über URL-Authentifizierung
                <requireall># Erlaubt auch noch die Einschänkung auf andere Eigenschaften
                   Require expr %{QUERY_STRING} =~ /user=[ Benutzername in der APP ]&pass=[ Passwort in der APP ]/</requireall> 
                    # Für alle anderen Zugriffe ist http-Authentifizierung erforderlich  
                Require valid-user</requireany></directory> 
    
            # Eintrag falls noch lokale Scripte wie z.B. PHP unterstützt werden sollen (muss natürlich getrennt installiert und eingerichtet werden)
          ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
          <directory "/usr/lib/cgi-bin"="">AllowOverride None
             Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
             Order allow,deny
             Allow from all</directory> 
    
          # Einrichtung der Zertifikate für die Verschlüsselung
          # Weitere Informationen siehe z.B. https://thomas-leister.de/apache2-webserver-ssl-verschluesselte-verbindungen-ermoeglichen/
          SSLCertificateFile /etc/apache2/ssl/[ Name der Zertifikatdatei ].crt
          SSLCertificateKeyFile /etc/apache2/ssl/[ Name der Datei mit dem privaten Schnlüssel ].key
          SSLCertificateChainFile /etc/apache2/ssl/[ evtl Name der Datei mit der Key Chain bis zum Root-Zertifikat ].crt
    
          
          
          # Rewrite-Regeln
          # Wichtig: Bei den nachfolgenden Mod-Proxy-Einträgen ist die Reihenfolge relevant. Die Auswertung erfolgt von oben nach unten. Das erste passende ProxyPass-Statement gilt.
          
          
            # Weiterleitung für Node-Red
          # Wichtig: Damit die Websocket-Verbindung korrekt weitergeleitet werden kann, muss in den Adapter-Einstellungen von Node-Red in "http root directory" "node-red" eingetragen werden.
          # Ohne Websocket-Verbindung kann man trotzdem auf die IDE zugreifen, bekommt jedoch keine Debug-Information angezeigt.
          # Der Zugriff auf Node-erfolgt dann intern http://[ interne IP ]:1880/node-red und extern über https://[ externe URL ]/node-red
          <ifmodule mod_proxy.c="">RewriteEngine On 
             redirectmatch ^/node-red$ /node-red/
             
             # Spezieller Eintrag für websocket-Verbindung
             RewriteCond %{REQUEST_URI} ^/node-red/comms [NC] 
             RewriteRule /(.*) ws://[ interne IP ]:1880/$1 [P,L] 
             
             ProxyPass /node-red/ http://[ interne IP ]:1880/node-red/ 
             ProxyPassReverse /node-red/ http://[ interne IP ]:1880/node-red/</ifmodule> 
    
          # Prototyp für Foscam Webcam
          # Der Zugriff auf die Webcam dann extern über https://[ externe URL ]/video1
    
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/video1$ /video1/
             rewritecond %{REQUEST_URI} ^/video1/
             rewriterule (.*) $1 [PT]
    
             # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /video1 ergänzt, damit ProxyPass matched.
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/video1/ 
             rewriterule ^/(.*) /video1/$1 [PT]
             
             ProxyPass /video1/ http://[ interne IP ]/
             ProxyPassReverse /video1/ http://[ interne IP ]/</ifmodule> 
    
          
          # Rewrite-Regeln für Homematic CCU 
          # Stammt ursprünglich aus Homematic Forum
          # Der Zugriff auf die CCU efolgt intern weiterhin über http://[ interne IP ] und extern über https://[ externe URL ]/ccu
    
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/ccu$ /ccu/
             rewritecond %{REQUEST_URI} ^/ccu/
             rewriterule (.*) $1 [PT]
    
             # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /ccu ergänzt, damit ProxyPass matched.
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/ccu/ [OR]
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/webui/ [OR]
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/pda/ [OR]
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/api/ [OR]
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/addons/xmlapi/ [OR]
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/addons/cuxd/
             rewritecond %{HTTP_REFERER} \?sid\=\@.+\@ [OR]
             rewritecond %{THE_REQUEST} \?sid\=\@.+\@
             rewriterule ^/(.*) /ccu/$1 [PT]
             rewriterule ^/pda/(.*) /ccu/pda/$1
             rewriterule ^/webui/(.*) /ccu/webui/$1
             rewriterule ^/addons/db/(.*) /ccu/addons/db/$1
             rewriterule ^/addons/xmlapi/(.*) /ccu/addons/xmlapi/$1
             rewriterule ^/addons/cuxd/(.*) /ccu/addons/cuxd/$1
             ProxyPass /ccu/ http://[ interne IP ]/ timeout=1200
             ProxyPassReverse /ccu/ http://[ interne IP ]/ timeout=1200</ifmodule> 
    
          # Rewrite-Regeln für ioBroker Admin
          # Der Zugriff auf die Admin-Seite efolgt intern weiterhin über http://[ interne IP ]:8081 und extern über https://[ externe URL ]/iobroker
          
                    # Websocket Admin
                   <ifmodule mod_proxy.c="">RewriteEngine On 
                         Redirectmatch ^/iobroker/socket.io$ /iobroker/socket.io/
                         RewriteCond %{REQUEST_URI} ^/iobroker/socket.io/ 
                         RewriteCond %{QUERY_STRING} transport=websocket
                         RewriteRule ^/(.*) /iobrokerwss/$1 [PT]
                         ProxyPass /iobrokerwss/iobroker/socket.io/ ws://localhost:8081/socket.io/ timeout=1200 Keepalive=On</ifmodule> 
    
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/iobroker$ /iobroker/
             rewritecond %{REQUEST_URI} ^/iobroker/
             rewriterule (.*) $1 [PT]
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/iobroker/ [OR]
                            rewritecond %{REQUEST_URI} ^/css/adapter.css [OR]
                            rewritecond %{REQUEST_URI} ^/js/translate.js [OR]
                            rewritecond %{REQUEST_URI} ^/js/adapter/ [OR]
                            rewritecond %{REQUEST_URI} ^/adapter/ [OR]
                            rewritecond %{REQUEST_URI} ^/js/adapter-settings.js [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/jqGrid/ [OR]
                            rewritecond %{REQUEST_URI} ^/lib/css/jquery.multiselect-1.13.css [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/jquery-ui.min.js [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/loStorage.js [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/ace-1.2.0/ace.js [OR]
                            rewritecond %{REQUEST_URI} ^/js/selectID.js  [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/loStorage.js  [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/ace-1.2.0/ace.js [OR]
                            rewritecond %{REQUEST_URI} ^/js/selectID.js [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/ace-1.2.0/mode-javascript.js [OR]
                            rewritecond %{REQUEST_URI} ^/lib/js/ace-1.2.0/worker-javascript.js      
             rewriterule ^/(.*) /iobroker/$1 [PT]
    
             ProxyPass /iobroker/ http://[ interne IP ]:8081/ timeout=1200
             ProxyPassReverse /iobroker/ http://[ interne IP ]:8081/ timeout=1200</ifmodule> 
    
          # Rewrite-Regeln für ioBroker VIS
          # Die socket.io-Kommunikation und der Zugriff auf /lib wird nachfolgend getrennt geregelt (geht bestimmt auch einfacher hier lokal)
          # Wichtig: Im web-Adapter mit "Socket.IO Instance" auf integriert stehen.
          # Der Zugriff auf die Admin-Seite efolgt intern weiterhin über http://[ interne IP ]:8082/vis/index.html und extern über https://[ externe URL ]/vis/vis/index.html. 
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/vis$ /vis/
             rewritecond %{REQUEST_URI} ^/vis/
             rewriterule (.*) $1 [PT]
    
             # Referer Auswertung, falls eine lokale absolute Referenz auf den Seiten ist. In diesem Fall wird /vis ergänzt, damit ProxyPass matched.
             # Referenzen auf node-red, static und socket.io werden explizit ausgeschlossen.
             rewritecond %{HTTP_REFERER} https://[ externe URL ]/vis/
             rewritecond %{REQUEST_URI} !^/node-red/
             rewritecond %{REQUEST_URI} !^/static/
             rewritecond %{REQUEST_URI} !^/socket.io/
             rewriterule ^/(.*) /vis/$1 [PT]
             
             ProxyPass /vis/ http://[ interne IP ]:8082/ timeout=10
             ProxyPassReverse /vis/ http://[ interne IP ]:8082/ timeout=10</ifmodule> 
    
          # Rewrite-Regeln für einen direkten Zugriff auf das Verzeichnis /lib des Web-Servers von ioBroker VIS ohne Referer
          # Dürfte normalerweise nicht benötigt werden.
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/lib$ /lib/
             rewritecond %{REQUEST_URI} ^/lib/
             rewriterule (.*) $1 [PT]
             ProxyPass /lib/ http://[ interne IP ]:8082/lib/ timeout=10
             ProxyPassReverse /lib/ http://[ interne IP ]:8082/lib/ timeout=10</ifmodule> 
    
          # Rewrite-Regeln für einen direkten Zugriff auf auf flot ohne VIS
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/flot$ /flot/
             rewritecond %{REQUEST_URI} ^/flot/
             rewriterule (.*) $1 [PT]
             ProxyPass /flot/ http://[ interne IP ]/flot/ timeout=10
             ProxyPassReverse /flot/ http://[ interne IP ]:8082/flot/ timeout=10</ifmodule> 
    
          # Rewrite-Regeln für einen direkten Zugriff auf auf rickshaw ohne VIS
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             redirectmatch ^/rickshaw$ /rickshaw/
             rewritecond %{REQUEST_URI} ^/rickshaw/
             rewriterule (.*) $1 [PT]
             ProxyPass /rickshaw/ http://[ interne IP ]:8082/rickshaw/ timeout=10
             ProxyPassReverse /rickshaw/ http://[ interne IP ]/rickshaw/ timeout=10</ifmodule> 
    
          # Rewrite-Regeln für die socket.io Websocket-Verbindung von VIS und APP sowie Javascript-Adapter
          # Wichtig: Da socket.io im Webadapter auf intern steht, sollte hier auch auf den Web-Adapter und nicht auf einen separaten socket.io-Adapter referenziert werden.
          # Setzt externes WSS (Verschlüsselte Websocket-Verbindung) auf internen WS (ohne SSL/TLS) um.
    
                    # Websocket Javascript
          <ifmodule mod_proxy.c="">RewriteEngine On 
             Redirectmatch ^/socket.io$ /socket.io/
             RewriteCond %{REQUEST_URI} ^/socket.io/ 
             RewriteCond %{QUERY_STRING} transport=websocket
             RewriteCond %{QUERY_STRING} !key=
             RewriteRule ^/(.*) /wss2/$1 [PT]
             ProxyPass /wss2/socket.io/ ws://[ interne IP ]:8081/socket.io/ timeout=1200 Keepalive=On</ifmodule> 
    
          # Websocket VIS
          <ifmodule mod_proxy.c="">RewriteEngine On 
             Redirectmatch ^/socket.io$ /socket.io/
             RewriteCond %{REQUEST_URI} ^/socket.io/ 
             RewriteCond %{QUERY_STRING} transport=websocket
             RewriteCond %{QUERY_STRING} key=
             RewriteRule ^/(.*) /wss/$1 [PT]
             ProxyPass /wss/socket.io/ ws://[ interne IP ]:8082/socket.io/ timeout=1200 Keepalive=On</ifmodule> 
    
          # Rewrite-Regeln für die Datei _socket im Hauptverzeichnis vom Web-Server
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             Redirectmatch ^/_socket$ /_socket/
             RewriteCond %{REQUEST_URI} ^/_socket/
    
             RewriteRule (.*) $1 [PT]
             ProxyPass /_socket/ http://[ interne IP ]:8082/_socket/
             ProxyPassReverse /_socket http://[ interne IP ]:8082/_socket/</ifmodule> 
    
          # Rewrite-Regeln für die socket.io Verbindung im Polling-Modus über HTTPS von VIS und APP sowie Javascript-Adapter
          # Wichtig: Da socket.io im Webadapter auf intern steht, sollte hier auch auf den Web-Adapter und nicht auf einen separaten socket.io-Adapter referenziert werden.
          
          # socket.io Javascript
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             Redirectmatch ^/socket.io$ /socket.io/
             RewriteCond %{REQUEST_URI} ^/socket.io/
             RewriteCond %{QUERY_STRING} transport=polling
             RewriteCond %{QUERY_STRING} !key=
             RewriteRule (.*) /adminsocket/$1 [PT]
             ProxyPass /adminsocket/socket.io/ http://[ interne IP ]:8081/socket.io/
             ProxyPassReverse /adminsocket/socket.io/ http://[ interne IP ]:8081/socket.io/</ifmodule> 
    
          # socket.io VIS
          <ifmodule mod_proxy.c="">ProxyRequests off
             RewriteEngine On
             Redirectmatch ^/socket.io$ /socket.io/
             RewriteCond %{REQUEST_URI} ^/socket.io/
             RewriteCond %{QUERY_STRING} transport=polling
             RewriteCond %{QUERY_STRING} key=
             RewriteRule (.*) $1 [PT]
             ProxyPass /socket.io/ http://[ interne IP ]:8082/socket.io/
             ProxyPassReverse /socket.io/ http://[ interne IP ]:8082/socket.io/</ifmodule> 
    
          # Parameter für die Steuerung der Log-Ausgabe beim Rewrite
          # Die Logausgabe kann durch Entfernen der # aktiviert werden
          #LogLevel warn 
          #LogLevel alert rewrite:trace8
          #CustomLog ${APACHE_LOG_DIR}/ssl_access2.log combined 
    
          # Generelles Anschalten von SSL
          SSLEngine on 
    
          # Sonderregeln für Scripte
          <filesmatch "\.(shtml|phtml|php)$"="">
             SSLOptions +StdEnvVars 
          </filesmatch> 
          <directory usr/lib/cgi-bin=""> 
             SSLOptions +StdEnvVars 
          </directory></virtualhost></ifmodule> 
    
    

    Kannst du prüfen, ob dies so auch bei dir funktioniert?

    Viele Grüße

    Markus ` Auch wenn der Beitrag schon uralt ist, hat er mir dennoch sehr gut weitergeholfen. Vielen Dank!

    (Schade, dass diese Config hier nicht in der Dokumentation ist…)

    Gesendet von meinem Mi MIX 2S mit Tapatalk

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      Marc_St
      schrieb am zuletzt editiert von
      #55

      Re: IoBroker (und vis) über ReverseProxy

      Liebe alle,

      zunächst besten Dank für den Content hier und sorry für das Hochholen eines doch alten Threads.

      Ich habe ein Problem: Die Konfiguration ist ja auf basic-Authentication ausgelegt, und die Authentifizierung in Admin und VIS muss ausgeschaltet werden:

      # Die Berechtigungsprüfung erfolgt durch Apache mittels HTTP-Basic Authentication oder Parameter an der URL.  Dies hat den Vorteil, das unberechtigte Anfragen erst garnicht zu den Systemen gelangen.
      # Da die Verbindung mit SSL/TLS gesichert ist, ist basic-Authentication vollständig ausreichend und am schnellsten. 
      # In den lokalen Systemen ist die Authentifizierung auszuschalten, da die Authentifizierungsdaten nicht durchgereicht werden.
      

      Nun möchte ich aber eben doch anstelle von HTTP-Basic Auth doch lieber mit der Authentifizierung in den Modulen arbeiten. Aus meiner Sicht gibt es dazu zwei gute Gründe: 1) Ich kann am Rechner die Credentials speichern lassen, was bei HTTP-Basic Auth bspw. im iPhone nicht geht, und 2.) die tolle, neue ioBroker app.

      Ich bekomme es aber einfach nicht hin. Wenn ich mich auf domain.de/vis/... einlogge, springt der Dialog zu domain.de/login, was natürlich nicht geht, da domain.de/vis/login richtig wäre ...

      Ich bin da leider mit meinem Latein am ende. Ist das viel zu ändern? Oder geht technisch nicht, was ich vorhabe?

      Danke!

      Marc

      T 1 Antwort Letzte Antwort
      0
      • M MrLee

        Moin!

        Hat jemand das schonmal für nginx umgesetzt?

        bis denne

        Mr.Lee

        1 Offline
        1 Offline
        123flip
        schrieb am zuletzt editiert von 123flip
        #56

        @MrLee said in IoBroker (und vis) über ReverseProxy:

        nginx

        Nochmals die Nachfrage: Hat das schon mal jemand mit NGINX erfolgreich zum Laufen gebracht? Habe jetzt verschiedenste Konfigurationen probiert, aber es funktioniert leider nicht...

        R 1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dodi666
          schrieb am zuletzt editiert von
          #57

          Hallo zusammen,
          gibt es eine laufende Reverse Proxy Konfiguration für den iobroker und die CCU?
          Die alte für den Apache bekomme ich leider nicht mehr ans laufen...

          Grüße Sascha

          1 Antwort Letzte Antwort
          0
          • 1 123flip

            @MrLee said in IoBroker (und vis) über ReverseProxy:

            nginx

            Nochmals die Nachfrage: Hat das schon mal jemand mit NGINX erfolgreich zum Laufen gebracht? Habe jetzt verschiedenste Konfigurationen probiert, aber es funktioniert leider nicht...

            R Offline
            R Offline
            robotastic
            schrieb am zuletzt editiert von robotastic
            #58

            Hi @123flip und Hi Forum :) ,

            ich nutze aktuell zwar eigentlich lovelace, habe aber mal eben vis installiert und die config erweitert und getestet. Auf den ersten Blick scheint alles zu funktionieren. Ich habe mal beides drin gelassen, so dass sich jeder nach Bedarf die entsprechenden Teile rauspicken kann. Ports und Servername(myiobrokerurl) können natürlich nach Bedarf angepasst werden. Bei Rückfragen gerne melden.

            Als Bonus hab ich auch noch eine Config für MQTTS angehängt :)

            Anzupassen

            • Ports
            • Servername (myiobrokerurl)
            • Pfade für SSL-Zertifikat und Key

            Urls und Ports:

            • Admin https: //myiobrokerurl
            • Lovelace https ://myiobrokerurl:8092
            • Vis https ://myiobrokerurl:8083

            nginx/conf.d/iobroker.conf

            #admin config
            server { # simple reverse-proxy
                listen 80;
                listen [::]:80;
            
                return 301 https://myiobrokerurl$request_uri;
            }
            
            server{
                listen 443;
                listen [::]:443;
            
                server_name myiobrokerurl;
                ssl_certificate /etc/ssl/certs/myiobrokerurl.cert.pem;
                ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
            
                ssl on;
                ssl_session_cache  builtin:1000  shared:SSL:10m;
                ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                ssl_prefer_server_ciphers on;
            
                access_log            /var/log/nginx/myiobrokerurl.access.log;
            
                location / {
            
                  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_pass          http://127.0.0.1:8081;
                  proxy_read_timeout  90;
            
                  proxy_redirect      http://127.0.0.1:8081 https://myiobrokerurl;
                }
            }
            #admin end
            
            #lovelace config
            map $http_upgrade $connection_upgrade {
                default upgrade;
                '' close;
            }
            
            
            server{
                listen 8083;
                listen [::]:8083;
            
                server_name myiobrokerurl;
                ssl_certificate /etc/ssl/certs/myiobrokerurl.cert.pem;
                ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
            
                ssl on;
                ssl_session_cache  builtin:1000  shared:SSL:10m;
                ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                ssl_prefer_server_ciphers on;
            
                access_log            /var/log/nginx/myiobrokerurl.access.log;
            
                location / {
            
                  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_pass          http://127.0.0.1:8082;
                  proxy_read_timeout  90;
            
                  proxy_redirect      http://127.0.0.1:8082 https://myiobrokerurl:8082;
                }
            }
            #lovelace end
            
            #vis conf
            server{
                listen 8092;
                listen [::]:8092;
            
                server_name myiobrokerurl;
                ssl_certificate /etc/ssl/certs/myiobrokerurl.cert.pem;
                ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
            
                ssl on;
                ssl_session_cache  builtin:1000  shared:SSL:10m;
                ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                ssl_prefer_server_ciphers on;
            
                access_log            /var/log/nginx/myiobrokerurl.access.log;
            
                location / {
            
                  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_pass          http://127.0.0.1:8091;
                  proxy_read_timeout  90;
            
                  proxy_redirect      http://127.0.0.1:8091 https://myiobrokerurl:8091;
                }
            
                location /api/websocket {
                    proxy_pass http://myiobrokerurl:8091/api/websocket;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection $connection_upgrade;
                    proxy_set_header Host $host;
                }
            }
            #vis end
            

            nginx/stream_conf.d/mqtts.conf

            server {
                listen 8883 ssl; # MQTT secure port
            
                ssl_certificate     /etc/ssl/certs/myiobrokerurl.cert.pem;
                ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
                ssl_ciphers         HIGH:!aNULL:!MD5;
                ssl_session_tickets on;
                ssl_session_timeout 8h;
            
                proxy_pass 127.0.0.1:1883;
                proxy_connect_timeout 1s;
            }
            
            1 1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              dodi666
              schrieb am zuletzt editiert von
              #59

              Vielen Dank @robotastic,
              sofern keiner was laufendes für den Apache im Angebot hat, würde ich mir mal nginx anschauen...
              Kannst du mir vielleicht noch dabei helfen, die CCU auch über diesen Weg einzubinden?

              Grüße
              Sascha

              R 1 Antwort Letzte Antwort
              0
              • D dodi666

                Vielen Dank @robotastic,
                sofern keiner was laufendes für den Apache im Angebot hat, würde ich mir mal nginx anschauen...
                Kannst du mir vielleicht noch dabei helfen, die CCU auch über diesen Weg einzubinden?

                Grüße
                Sascha

                R Offline
                R Offline
                robotastic
                schrieb am zuletzt editiert von
                #60

                @dodi666 Leider habe ich keine CCU um das zu testen und weiß auch leider nicht, wie das ganze aufgebaut ist. Muss ein location Aufruf sein oder reicht auch eine Port Weiterleitung? Welche Protokolle werden verwendet?

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  dodi666
                  schrieb am zuletzt editiert von
                  #61

                  Hi,
                  beim Apache habe ich es mittels einfacher Weiterleitung hinbekommen. Leider nur für Port 80 und die Weiterleitung des iobroker habe ich garnicht hinbekommen. Ich versuche mich in den nächsten Tagen erstmal mit der nginx Installation. Zudem würde ich die gerne mit einem htaccess Passwortschutz versehen, und eine SSL Verschlüsselung vorsehen. Dann wäre das Ziel den iobroker über eine URL und die ccu über eine zweite URL von außen zugänglich zu machen. Was deine Fragen zur CCU angeht, kannst du die Antworten ggf. in der Apache Konfiguration in diesem Thread sehen? Bitte nicht falsch verstehen, aber ich lese mich gerade erst in das Thema ein, und bin der totale Anfänger 😬

                  1 Antwort Letzte Antwort
                  0
                  • M Marc_St

                    Re: IoBroker (und vis) über ReverseProxy

                    Liebe alle,

                    zunächst besten Dank für den Content hier und sorry für das Hochholen eines doch alten Threads.

                    Ich habe ein Problem: Die Konfiguration ist ja auf basic-Authentication ausgelegt, und die Authentifizierung in Admin und VIS muss ausgeschaltet werden:

                    # Die Berechtigungsprüfung erfolgt durch Apache mittels HTTP-Basic Authentication oder Parameter an der URL.  Dies hat den Vorteil, das unberechtigte Anfragen erst garnicht zu den Systemen gelangen.
                    # Da die Verbindung mit SSL/TLS gesichert ist, ist basic-Authentication vollständig ausreichend und am schnellsten. 
                    # In den lokalen Systemen ist die Authentifizierung auszuschalten, da die Authentifizierungsdaten nicht durchgereicht werden.
                    

                    Nun möchte ich aber eben doch anstelle von HTTP-Basic Auth doch lieber mit der Authentifizierung in den Modulen arbeiten. Aus meiner Sicht gibt es dazu zwei gute Gründe: 1) Ich kann am Rechner die Credentials speichern lassen, was bei HTTP-Basic Auth bspw. im iPhone nicht geht, und 2.) die tolle, neue ioBroker app.

                    Ich bekomme es aber einfach nicht hin. Wenn ich mich auf domain.de/vis/... einlogge, springt der Dialog zu domain.de/login, was natürlich nicht geht, da domain.de/vis/login richtig wäre ...

                    Ich bin da leider mit meinem Latein am ende. Ist das viel zu ändern? Oder geht technisch nicht, was ich vorhabe?

                    Danke!

                    Marc

                    T Offline
                    T Offline
                    tigiba
                    schrieb am zuletzt editiert von
                    #62

                    @Marc_St
                    Ich hätte den selben Wunsch: Verwendung der in IO-Broker eingebauten Authentifizierung samt unterschiedliche Berechtigungen für unterschiedliche User - und das über einen Apache reverse proxy.

                    Geht das? Hat das schon jemand geschafft? Ich stehe ziemlich an, und auch ohne Authentifizierung bin ich mit der aus diesem Thread hervorgegangenen Doku auf https://www.iobroker.net/docu/index-303.htm?page_id=5082&lang=de bin leider bisher nicht sehr weit gekommen...

                    1 Antwort Letzte Antwort
                    0
                    • R robotastic

                      Hi @123flip und Hi Forum :) ,

                      ich nutze aktuell zwar eigentlich lovelace, habe aber mal eben vis installiert und die config erweitert und getestet. Auf den ersten Blick scheint alles zu funktionieren. Ich habe mal beides drin gelassen, so dass sich jeder nach Bedarf die entsprechenden Teile rauspicken kann. Ports und Servername(myiobrokerurl) können natürlich nach Bedarf angepasst werden. Bei Rückfragen gerne melden.

                      Als Bonus hab ich auch noch eine Config für MQTTS angehängt :)

                      Anzupassen

                      • Ports
                      • Servername (myiobrokerurl)
                      • Pfade für SSL-Zertifikat und Key

                      Urls und Ports:

                      • Admin https: //myiobrokerurl
                      • Lovelace https ://myiobrokerurl:8092
                      • Vis https ://myiobrokerurl:8083

                      nginx/conf.d/iobroker.conf

                      #admin config
                      server { # simple reverse-proxy
                          listen 80;
                          listen [::]:80;
                      
                          return 301 https://myiobrokerurl$request_uri;
                      }
                      
                      server{
                          listen 443;
                          listen [::]:443;
                      
                          server_name myiobrokerurl;
                          ssl_certificate /etc/ssl/certs/myiobrokerurl.cert.pem;
                          ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
                      
                          ssl on;
                          ssl_session_cache  builtin:1000  shared:SSL:10m;
                          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                          ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                          ssl_prefer_server_ciphers on;
                      
                          access_log            /var/log/nginx/myiobrokerurl.access.log;
                      
                          location / {
                      
                            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_pass          http://127.0.0.1:8081;
                            proxy_read_timeout  90;
                      
                            proxy_redirect      http://127.0.0.1:8081 https://myiobrokerurl;
                          }
                      }
                      #admin end
                      
                      #lovelace config
                      map $http_upgrade $connection_upgrade {
                          default upgrade;
                          '' close;
                      }
                      
                      
                      server{
                          listen 8083;
                          listen [::]:8083;
                      
                          server_name myiobrokerurl;
                          ssl_certificate /etc/ssl/certs/myiobrokerurl.cert.pem;
                          ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
                      
                          ssl on;
                          ssl_session_cache  builtin:1000  shared:SSL:10m;
                          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                          ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                          ssl_prefer_server_ciphers on;
                      
                          access_log            /var/log/nginx/myiobrokerurl.access.log;
                      
                          location / {
                      
                            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_pass          http://127.0.0.1:8082;
                            proxy_read_timeout  90;
                      
                            proxy_redirect      http://127.0.0.1:8082 https://myiobrokerurl:8082;
                          }
                      }
                      #lovelace end
                      
                      #vis conf
                      server{
                          listen 8092;
                          listen [::]:8092;
                      
                          server_name myiobrokerurl;
                          ssl_certificate /etc/ssl/certs/myiobrokerurl.cert.pem;
                          ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
                      
                          ssl on;
                          ssl_session_cache  builtin:1000  shared:SSL:10m;
                          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                          ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                          ssl_prefer_server_ciphers on;
                      
                          access_log            /var/log/nginx/myiobrokerurl.access.log;
                      
                          location / {
                      
                            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_pass          http://127.0.0.1:8091;
                            proxy_read_timeout  90;
                      
                            proxy_redirect      http://127.0.0.1:8091 https://myiobrokerurl:8091;
                          }
                      
                          location /api/websocket {
                              proxy_pass http://myiobrokerurl:8091/api/websocket;
                              proxy_http_version 1.1;
                              proxy_set_header Upgrade $http_upgrade;
                              proxy_set_header Connection $connection_upgrade;
                              proxy_set_header Host $host;
                          }
                      }
                      #vis end
                      

                      nginx/stream_conf.d/mqtts.conf

                      server {
                          listen 8883 ssl; # MQTT secure port
                      
                          ssl_certificate     /etc/ssl/certs/myiobrokerurl.cert.pem;
                          ssl_certificate_key /etc/ssl/private/myiobrokerurl.key.pem;
                          ssl_ciphers         HIGH:!aNULL:!MD5;
                          ssl_session_tickets on;
                          ssl_session_timeout 8h;
                      
                          proxy_pass 127.0.0.1:1883;
                          proxy_connect_timeout 1s;
                      }
                      
                      1 Offline
                      1 Offline
                      123flip
                      schrieb am zuletzt editiert von
                      #63

                      @robotastic
                      Nach langer Zeit wollte ich heute mal wieder schauen, ob sich hier was getan hat und ich danke dir für deine Beispielkonfiguration.
                      Wundersamerweise funktioniert nun meine alte Konfiguration, ich nehme an, dass es irgendwelche Updates bei iobroker gab, die das verbessert hat.

                      Mein Problem waren immer die Websocket-Verbindungen über die Pfade ".../socket.io/". Leider finde ich dazu in deiner Konfiguration nichts.

                      Anbei noch meine aktuelle Konfiguration:

                      server {
                          listen 443 ssl;
                          server_name myhost.de;
                          server_tokens off;
                      
                          ssl_certificate ./fullchain.pem;
                          ssl_certificate_key ./privkey.pem;
                          include /etc/letsencrypt/options-ssl-nginx.conf;
                          ssl_dhparam ./ssl-dhparams.pem;
                      
                          location / {
                              proxy_pass  http://ioBroker:8082;
                              proxy_set_header    Host                $http_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;
                              satisfy any;
                              auth_basic            "Access Restricted";
                              auth_basic_user_file  .htpasswd;
                              proxy_set_header Upgrade $http_upgrade;
                              proxy_set_header Connection "Upgrade";
                              proxy_http_version 1.1;
                          }
                          
                          #location /socket.io {
                          #try_files $uri $uri/ @websocket;
                          #}
                      
                          #location @websocket {
                          #    proxy_pass http://ioBroker:8082/socket.io/;
                          #    proxy_http_version 1.1;
                          #    proxy_set_header Upgrade $http_upgrade;
                          #    proxy_set_header Connection "upgrade";
                          #}
                          location /socket.io/socket.io.js {
                              #proxy_set_header Upgrade $http_upgrade;
                              #proxy_set_header Connection "Upgrade";
                              #proxy_http_version 1.1;
                              #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                              #proxy_set_header Host $host;
                              proxy_pass http://ioBroker:8082/socket.io/socket.io.js;
                          }
                              
                          location /socket.io {
                              proxy_set_header Upgrade $http_upgrade;
                              proxy_set_header Connection "Upgrade";
                              proxy_http_version 1.1;
                              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                              proxy_set_header Host $host;
                              proxy_pass http://ioBroker:8082/socket.io;
                          }
                      }
                      
                      1 Antwort Letzte Antwort
                      0
                      • spicerS Online
                        spicerS Online
                        spicer
                        schrieb am zuletzt editiert von spicer
                        #64

                        Hallo
                        Ich nehme mal den alten Thread aus der Versenkung.
                        Ich habe den apache2 reverse Proxy nach dieser Anleitung installiert:
                        ~~https://www.iobroker.net/docu/index-303.htm?page_id=5082&lang=de~~
                        Das ist doch das, worüber hier diskutiert wird, oder?
                        Wenn ich mich auf domain.de/vis/... einlogge, springt der Dialog zu domain.de/login/index.html?href=%2Flogin, was natürlich nicht geht, da domain.de/vis/login richtig wäre ...
                        Kann mir da jemand behilflich sein oder gar eine aktuellere Anleitung empfehlen?

                        Ach ja, ich benutze die Ports 81 und 444, da 80 und 443 von deCONZ besetzt sind.

                        Edit:
                        Problem gelöst. Habe nun auch nginx installiert.

                        Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                        (Murphys Gesetz)

                        M 1 Antwort Letzte Antwort
                        0
                        • spicerS spicer

                          Hallo
                          Ich nehme mal den alten Thread aus der Versenkung.
                          Ich habe den apache2 reverse Proxy nach dieser Anleitung installiert:
                          ~~https://www.iobroker.net/docu/index-303.htm?page_id=5082&lang=de~~
                          Das ist doch das, worüber hier diskutiert wird, oder?
                          Wenn ich mich auf domain.de/vis/... einlogge, springt der Dialog zu domain.de/login/index.html?href=%2Flogin, was natürlich nicht geht, da domain.de/vis/login richtig wäre ...
                          Kann mir da jemand behilflich sein oder gar eine aktuellere Anleitung empfehlen?

                          Ach ja, ich benutze die Ports 81 und 444, da 80 und 443 von deCONZ besetzt sind.

                          Edit:
                          Problem gelöst. Habe nun auch nginx installiert.

                          M Offline
                          M Offline
                          Milraun
                          schrieb am zuletzt editiert von
                          #65

                          Kann bitte noch einmal jemand eine aktuell nginx Konfiguration posten.

                          Meine Vis hinter dem ReverseProxy behauptet immer sie hätte keine Connection.

                          Ich bin schon etwas verzweifelt.

                          Milraun

                          spicerS 1 Antwort Letzte Antwort
                          0
                          • M Milraun

                            Kann bitte noch einmal jemand eine aktuell nginx Konfiguration posten.

                            Meine Vis hinter dem ReverseProxy behauptet immer sie hätte keine Connection.

                            Ich bin schon etwas verzweifelt.

                            Milraun

                            spicerS Online
                            spicerS Online
                            spicer
                            schrieb am zuletzt editiert von spicer
                            #66

                            @milraun

                            Hier meine config (in /etc/nginx/sites-available ). Wobei mein ioBroker Server die interne IP 192.168.1.251 hat. Die musst Du auch anpassen.
                            An 2 Stellen muss Du Deine Dyn-DNS eintragen, wenn Du von extern zugreifen willst (wegen dem SSL Zertifikat).
                            Den Pfad zu den SSL Keys und htpasswd nicht vergessen anzupassen. Let's encrypt brauch ich Dir ja nicht zu erklären :)
                            Meine Config hat zusätzlich eine htaccess (zusätzliche Passwortabfrage) drin und lässt mich von auswärts nur in das vis Verzeichnis.
                            Ich habe die Ports 81 und 444 verwendet, weil 80 und 443 von deCONZ benutzt wird.

                            map $http_upgrade $connection_upgrade {
                              default upgrade;
                              ''      close;
                            }
                            
                            auth_basic "Nur fuer mich";
                            auth_basic_user_file /etc/nginx/.htpasswd;      # Pfad anpassen
                            allow yy.yy.0.0/16;                             # IP Range yy.yy.  zulassen
                            allow xx.xx.xx.xx;                              # Einzelne zugelassene IP
                            deny all;
                            
                            server {
                              listen 81;
                              server_name meine_dyndns.net;                 # hier deine DYN-DNS
                              return 301 https://$host$request_uri;
                            }
                            
                            # SSL configuration
                            server {
                              listen 444 ssl;
                              server_name meine_dyndns.net;                 # hier deine DYN-DNS
                            #  return 301 https://$server_name$request_uri;
                              ssl_certificate      /etc/sslzertifikat/fullchain.pem;   # Pfad anpassen
                              ssl_certificate_key  /etc/sslzertifikat/privkey.pem;     # Pfad anpassen
                            
                              # Improve HTTPS performance with session resumption
                              ssl_session_cache shared:SSL:10m;
                              ssl_session_timeout 5m;
                            
                              # Enable server-side protection against BEAST attacks
                              ssl_prefer_server_ciphers on;
                              ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
                            
                              # Disable SSLv3
                              ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                            
                              # Diffie-Hellman parameter for DHE ciphersuites
                              ssl_dhparam /etc/sslzertifikat/dhparams.pem;             # Pfad anpassen
                            
                              # Enable HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
                              add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
                            
                            #  rewrite_by_lua_file /etc/nginx/lua/htaccess.lbc;
                            
                              # Enable OCSP stapling (http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox)
                              ssl_stapling off;
                              ssl_stapling_verify off;
                              ssl_trusted_certificate /etc/sslzertifikat/fullchain.pem;    # Pfad anpassen
                              resolver 8.8.8.8 8.8.4.4 valid=300s;
                              resolver_timeout 5s;
                            
                              location /vis {
                                proxy_pass http://192.168.1.251:8082/vis;
                                proxy_set_header Host $host;
                                proxy_redirect http:// https://;
                                proxy_http_version 1.1;
                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                proxy_set_header Upgrade $http_upgrade;
                                proxy_set_header Connection $connection_upgrade;
                              }
                            
                              location /login {
                                proxy_pass http://192.168.1.251:8082/login;
                                proxy_set_header Host $host;
                                proxy_redirect http:// https://;
                                proxy_http_version 1.1;
                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                proxy_set_header Upgrade $http_upgrade;
                                proxy_set_header Connection $connection_upgrade;
                              }
                            
                              location /lib {
                                proxy_pass http://192.168.1.251:8082/lib;
                                proxy_set_header Host $host;
                                proxy_redirect http:// https://;
                                proxy_http_version 1.1;
                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                proxy_set_header Upgrade $http_upgrade;
                                proxy_set_header Connection $connection_upgrade;
                              }
                            
                              location /socket.io {
                                proxy_pass http://192.168.1.251:8082/socket.io;
                                proxy_set_header Host $host;
                                proxy_redirect http:// https://;
                                proxy_http_version 1.1;
                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                proxy_set_header Upgrade $http_upgrade;
                                proxy_set_header Connection $connection_upgrade;
                              }
                            
                            }
                            

                            Hier noch die Links, welche ich benutzt habe:

                            nginx reverse proxy anleitung:

                            https://bloggerbu.de/reverseproxy/

                            htaccess in nginx anleitung:

                            https://www.cyberciti.biz/faq/nginx-password-protect-directory-with-nginx-htpasswd-authentication/

                            IP range anleitung:

                            https://ubiq.co/tech-blog/how-to-whitelist-ip-in-nginx/

                            Ich hoffe, das hilft Dir etwas weiter ;)

                            Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                            (Murphys Gesetz)

                            1 Antwort Letzte Antwort
                            0
                            • OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von
                              #67

                              Auch über ein Reverse-Proxy ist der iobroker offen im Internet nicht sicher.
                              Wenn ihr unbedingt meint, dann den Rechner so absichern, das man von da nicht auch noch ins restliche Netz kommt (demilitarisierte Zone mit gut konfiguriertem Firewall zum restlichen Netz.
                              Idealerweise dort dann auch keine Standardports nutzen, die jeder schon kennt und weitere Angriffsvektoren bieten.

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              M 1 Antwort Letzte Antwort
                              1
                              • OliverIOO OliverIO

                                Auch über ein Reverse-Proxy ist der iobroker offen im Internet nicht sicher.
                                Wenn ihr unbedingt meint, dann den Rechner so absichern, das man von da nicht auch noch ins restliche Netz kommt (demilitarisierte Zone mit gut konfiguriertem Firewall zum restlichen Netz.
                                Idealerweise dort dann auch keine Standardports nutzen, die jeder schon kennt und weitere Angriffsvektoren bieten.

                                M Offline
                                M Offline
                                Milraun
                                schrieb am zuletzt editiert von
                                #68

                                @oliverio Mir geht es eher darum alle Dienste unter einem Port zu erreichen, um keine Probleme mit cross origin policies zu bekommen. Z.B. bei der Nutzung von Grafana-Charts in vis.

                                Oder gibt es da eine einfachere Lösung?

                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • M Milraun

                                  @oliverio Mir geht es eher darum alle Dienste unter einem Port zu erreichen, um keine Probleme mit cross origin policies zu bekommen. Z.B. bei der Nutzung von Grafana-Charts in vis.

                                  Oder gibt es da eine einfachere Lösung?

                                  OliverIOO Offline
                                  OliverIOO Offline
                                  OliverIO
                                  schrieb am zuletzt editiert von OliverIO
                                  #69

                                  @milraun
                                  Nein zu Hause für das lokale netz ist das vollkommen in Ordnung.
                                  Ich hab da oben nur was von dyndns gelesen

                                  Manche denken reverse proxy oder gar die ssl Verschlüsselung schützen das heimische Netz.

                                  Reverse Proxy reduziert zwar den Angriffsvektor, macht halt nicht komplett sicher
                                  Und wenn man sich dann mit der config nicht gut auskennt dann ist es halt doch nur eine scheinbare Sicherheit

                                  Meine Adapter und Widgets
                                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                  Links im Profil

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • OliverIOO OliverIO

                                    @milraun
                                    Nein zu Hause für das lokale netz ist das vollkommen in Ordnung.
                                    Ich hab da oben nur was von dyndns gelesen

                                    Manche denken reverse proxy oder gar die ssl Verschlüsselung schützen das heimische Netz.

                                    Reverse Proxy reduziert zwar den Angriffsvektor, macht halt nicht komplett sicher
                                    Und wenn man sich dann mit der config nicht gut auskennt dann ist es halt doch nur eine scheinbare Sicherheit

                                    M Offline
                                    M Offline
                                    Milraun
                                    schrieb am zuletzt editiert von
                                    #70

                                    Muss ich in den admin-Einstellungen unter Reverse-proxy etwas eintragen?

                                    spicerS 1 Antwort Letzte Antwort
                                    0
                                    • M Milraun

                                      Muss ich in den admin-Einstellungen unter Reverse-proxy etwas eintragen?

                                      spicerS Online
                                      spicerS Online
                                      spicer
                                      schrieb am zuletzt editiert von
                                      #71

                                      @milraun
                                      Ich hab da nichts drin.

                                      Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                                      (Murphys Gesetz)

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate
                                      FAQ Cloud / IOT
                                      HowTo: Node.js-Update
                                      HowTo: Backup/Restore
                                      Downloads
                                      BLOG

                                      874

                                      Online

                                      32.4k

                                      Benutzer

                                      81.5k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe