NEWS
Reverse Proxy und ioBroker
-
Hallo Leute!
Ich habe einen Reverse Proxy (Nginx) mit einer eigenen Domain und Let's Encrypt laufen. So rufe ich alle Services mittels passender Sub-Domain auf. Auch den ioBroker.
Nun habe ich das Problem, dass die Seiten einiger Adapter (z.B. VIS, node-red oder roborock) sich nicht öffnen lassen ("Dieser Inhalt kann nicht geladen werden, da er ein unsicheres HTTP-Protokoll verwendet."). Eh klar, wenn der Adapter per http und nicht mit https aufgerufen wird. Oder es wird automatisch ein Port angehängt was natürlich auch nicht funktioniert.
Jetzt habe ich mir gedacht, dass man das im Admin bei 'Reverse-Proxy' irgendwie konfigurieren kann damit das klappt. Aber ich habe keine Ahnung was ich dort oder in Nginx einstellen muss. Entweder bleibt der Fehler oder ioBroker ist gar nicht mehr erreichbar.
Wie löse ich das?
-
Hallo Leute!
Ich habe einen Reverse Proxy (Nginx) mit einer eigenen Domain und Let's Encrypt laufen. So rufe ich alle Services mittels passender Sub-Domain auf. Auch den ioBroker.
Nun habe ich das Problem, dass die Seiten einiger Adapter (z.B. VIS, node-red oder roborock) sich nicht öffnen lassen ("Dieser Inhalt kann nicht geladen werden, da er ein unsicheres HTTP-Protokoll verwendet."). Eh klar, wenn der Adapter per http und nicht mit https aufgerufen wird. Oder es wird automatisch ein Port angehängt was natürlich auch nicht funktioniert.
Jetzt habe ich mir gedacht, dass man das im Admin bei 'Reverse-Proxy' irgendwie konfigurieren kann damit das klappt. Aber ich habe keine Ahnung was ich dort oder in Nginx einstellen muss. Entweder bleibt der Fehler oder ioBroker ist gar nicht mehr erreichbar.
Wie löse ich das?
puh,
du weißt das das nicht empfehlenswert ist.
lieber einen vpn einsetzen.
so sicher ist der iobroker nicht, das man ihn (auch über reverse proxy) frontal ins internet stellen kann.insbesondere auch weil du nach diesem thema fragen musst.
ich fürchte das du sonst in der konfiguration auch noch was verbaselst, was dein komplette LAN am Ende gefährdet.Aber wenn du unbedingt weitersuchen willst.
Das stichwort nennt sich URL rewriting. Der nginx schreibt in deinen html seiten die links um und ändert das protokoll.
das funktioniert solange, wie normale seiten auch ausgeliefert werden.
html inhalte in json requests findet das nur bedingt -
puh,
du weißt das das nicht empfehlenswert ist.
lieber einen vpn einsetzen.
so sicher ist der iobroker nicht, das man ihn (auch über reverse proxy) frontal ins internet stellen kann.insbesondere auch weil du nach diesem thema fragen musst.
ich fürchte das du sonst in der konfiguration auch noch was verbaselst, was dein komplette LAN am Ende gefährdet.Aber wenn du unbedingt weitersuchen willst.
Das stichwort nennt sich URL rewriting. Der nginx schreibt in deinen html seiten die links um und ändert das protokoll.
das funktioniert solange, wie normale seiten auch ausgeliefert werden.
html inhalte in json requests findet das nur bedingt@OliverIO Danke für deine Antwort!
Es geht mir nicht darum den ioBroker von extern zu erreichen (das mache ich per VPN), sondern um ihn auch intern mit der Domain erreichen zu können. Ich hätte gerne alles einheitlich. Also extern erreichbare Dienste und interne.
Ich habe den Proxy schon länger laufen und alles funktioniert wie es soll. Bis auf eben die Links innerhalb von ioBroker.
Ich hatte mich schon mal vor längerer Zeit damit beschäftigt und aufgegeben. Jetzt wollte ich einen neuen Versuch starten und komme einfach nicht ans Ziel.
-
@OliverIO Danke für deine Antwort!
Es geht mir nicht darum den ioBroker von extern zu erreichen (das mache ich per VPN), sondern um ihn auch intern mit der Domain erreichen zu können. Ich hätte gerne alles einheitlich. Also extern erreichbare Dienste und interne.
Ich habe den Proxy schon länger laufen und alles funktioniert wie es soll. Bis auf eben die Links innerhalb von ioBroker.
Ich hatte mich schon mal vor längerer Zeit damit beschäftigt und aufgegeben. Jetzt wollte ich einen neuen Versuch starten und komme einfach nicht ans Ziel.
Ich mache das mit tailscale.
Da muss ich nix komplexes aufsetzen und ich erreiche meine Kisten immer und von überall über deren hostname. -
@OliverIO Danke für deine Antwort!
Es geht mir nicht darum den ioBroker von extern zu erreichen (das mache ich per VPN), sondern um ihn auch intern mit der Domain erreichen zu können. Ich hätte gerne alles einheitlich. Also extern erreichbare Dienste und interne.
Ich habe den Proxy schon länger laufen und alles funktioniert wie es soll. Bis auf eben die Links innerhalb von ioBroker.
Ich hatte mich schon mal vor längerer Zeit damit beschäftigt und aufgegeben. Jetzt wollte ich einen neuen Versuch starten und komme einfach nicht ans Ziel.
@Dr.-Bakterius sagte in Reverse Proxy und ioBroker:
@OliverIO Danke für deine Antwort!
Es geht mir nicht darum den ioBroker von extern zu erreichen (das mache ich per VPN), sondern um ihn auch intern mit der Domain erreichen zu können. Ich hätte gerne alles einheitlich. Also extern erreichbare Dienste und interne.
Ich habe den Proxy schon länger laufen und alles funktioniert wie es soll. Bis auf eben die Links innerhalb von ioBroker.
Ich hatte mich schon mal vor längerer Zeit damit beschäftigt und aufgegeben. Jetzt wollte ich einen neuen Versuch starten und komme einfach nicht ans Ziel.
ich erinnere mich (oder es jemand anderes mit ähnlichem ansinnen.)
hab dann immer noch die gleiche meinung.
https im eigenen lan macht kein sinn.
und ich glaube das hab ich schon mal geschrieben.
das ssl zertikat gilt nur für die extern erreichbare domainfalls du nur für intern haben willst musst du dir eine CA aufbauen und allen Geräten diese bekannt machen (weil selbst ausgestellt) oder dir gegen geld eine zertifkat ausstellen lassen die du in deine CA verwenden kannst, die die Geräte dann im upstream anerkennen ohne es nochmal einzeln bekannt zu machen.
https://wiki.ubuntuusers.de/CA/
hier mal ein beispiel so eines zertifikats das über mehrere ebenen gültig ist
.
mit einem lets encrypt zertifikat kannst du das nicht machenaber ich wäre dann aus dem thema raus.
evtl kann jemand hier wirklich helfen.
ich empfehle dir aber stark den CA link detailliert durchzulesen, da steht das alles genau drin. -
@Dr.-Bakterius sagte in Reverse Proxy und ioBroker:
@OliverIO Danke für deine Antwort!
Es geht mir nicht darum den ioBroker von extern zu erreichen (das mache ich per VPN), sondern um ihn auch intern mit der Domain erreichen zu können. Ich hätte gerne alles einheitlich. Also extern erreichbare Dienste und interne.
Ich habe den Proxy schon länger laufen und alles funktioniert wie es soll. Bis auf eben die Links innerhalb von ioBroker.
Ich hatte mich schon mal vor längerer Zeit damit beschäftigt und aufgegeben. Jetzt wollte ich einen neuen Versuch starten und komme einfach nicht ans Ziel.
ich erinnere mich (oder es jemand anderes mit ähnlichem ansinnen.)
hab dann immer noch die gleiche meinung.
https im eigenen lan macht kein sinn.
und ich glaube das hab ich schon mal geschrieben.
das ssl zertikat gilt nur für die extern erreichbare domainfalls du nur für intern haben willst musst du dir eine CA aufbauen und allen Geräten diese bekannt machen (weil selbst ausgestellt) oder dir gegen geld eine zertifkat ausstellen lassen die du in deine CA verwenden kannst, die die Geräte dann im upstream anerkennen ohne es nochmal einzeln bekannt zu machen.
https://wiki.ubuntuusers.de/CA/
hier mal ein beispiel so eines zertifikats das über mehrere ebenen gültig ist
.
mit einem lets encrypt zertifikat kannst du das nicht machenaber ich wäre dann aus dem thema raus.
evtl kann jemand hier wirklich helfen.
ich empfehle dir aber stark den CA link detailliert durchzulesen, da steht das alles genau drin.Ich mache das mit tailscale.
Du verbindest alle Server mit Tailscale? Ich habe dafür einen CT nur dafür eingerichtet damit ich in mein Netz komme aber nicht jeden extra ins Tailscale gestellt.
@OliverIO sagte in Reverse Proxy und ioBroker:
falls du nur für intern haben willst musst du dir eine CA aufbauen und allen Geräten diese bekannt machen (weil selbst ausgestellt)
Ja, das habe ich schon alles. Und das war auch nicht meine Frage.
Es muss doch möglich sein ioBroker auch hinter einem reverse Proxy korrekt zu verwenden. Oder weshalb gibt es die Einstellungsseite? Und wenn man den ioBroker so einrichten kann, dass er über SSL erreichbar ist, sollten dann die Adapter das nicht mit berücksichtigen und deren Weboberfläche auch entsprechend erreichbar sein?
Ja, ich kann für jeden Dienst eine Subdomain in Nginx anlegen und im Browser die Favoriten wenn ich das möchte. Schöner und einfacher wäre es aber, wenn das direkt im ioBroker funktioniert.
-
Ich mache das mit tailscale.
Du verbindest alle Server mit Tailscale? Ich habe dafür einen CT nur dafür eingerichtet damit ich in mein Netz komme aber nicht jeden extra ins Tailscale gestellt.
@OliverIO sagte in Reverse Proxy und ioBroker:
falls du nur für intern haben willst musst du dir eine CA aufbauen und allen Geräten diese bekannt machen (weil selbst ausgestellt)
Ja, das habe ich schon alles. Und das war auch nicht meine Frage.
Es muss doch möglich sein ioBroker auch hinter einem reverse Proxy korrekt zu verwenden. Oder weshalb gibt es die Einstellungsseite? Und wenn man den ioBroker so einrichten kann, dass er über SSL erreichbar ist, sollten dann die Adapter das nicht mit berücksichtigen und deren Weboberfläche auch entsprechend erreichbar sein?
Ja, ich kann für jeden Dienst eine Subdomain in Nginx anlegen und im Browser die Favoriten wenn ich das möchte. Schöner und einfacher wäre es aber, wenn das direkt im ioBroker funktioniert.
@Dr.-Bakterius sagte in Reverse Proxy und ioBroker:
Du verbindest alle Server mit Tailscale?
Jein. Ein Raspberry verteilt Subnet Routes. Im Tailnet direkt sind nur 4 Kisten:
1 Mobiltelefon
1 Raspberry
1 Notebook
1 Mini-PCAlles andere (wie z. B. eine FritzBox) erreiche ich über die Subnets.
-
Ich mache das mit tailscale.
Du verbindest alle Server mit Tailscale? Ich habe dafür einen CT nur dafür eingerichtet damit ich in mein Netz komme aber nicht jeden extra ins Tailscale gestellt.
@OliverIO sagte in Reverse Proxy und ioBroker:
falls du nur für intern haben willst musst du dir eine CA aufbauen und allen Geräten diese bekannt machen (weil selbst ausgestellt)
Ja, das habe ich schon alles. Und das war auch nicht meine Frage.
Es muss doch möglich sein ioBroker auch hinter einem reverse Proxy korrekt zu verwenden. Oder weshalb gibt es die Einstellungsseite? Und wenn man den ioBroker so einrichten kann, dass er über SSL erreichbar ist, sollten dann die Adapter das nicht mit berücksichtigen und deren Weboberfläche auch entsprechend erreichbar sein?
Ja, ich kann für jeden Dienst eine Subdomain in Nginx anlegen und im Browser die Favoriten wenn ich das möchte. Schöner und einfacher wäre es aber, wenn das direkt im ioBroker funktioniert.
@Dr.-Bakterius sagte in Reverse Proxy und ioBroker:
Es muss doch möglich sein ioBroker auch hinter einem reverse Proxy korrekt zu verwenden. Oder weshalb gibt es die Einstellungsseite? Und wenn man den ioBroker so einrichten kann, dass er über SSL erreichbar ist, sollten dann die Adapter das nicht mit berücksichtigen und deren Weboberfläche auch entsprechend erreichbar sein?
da sollte sich dann lieber mal einer der core entwickler dazu äussern.
-
@Dr.-Bakterius sagte in Reverse Proxy und ioBroker:
Es muss doch möglich sein ioBroker auch hinter einem reverse Proxy korrekt zu verwenden. Oder weshalb gibt es die Einstellungsseite? Und wenn man den ioBroker so einrichten kann, dass er über SSL erreichbar ist, sollten dann die Adapter das nicht mit berücksichtigen und deren Weboberfläche auch entsprechend erreichbar sein?
da sollte sich dann lieber mal einer der core entwickler dazu äussern.
@OliverIO sagte in Reverse Proxy und ioBroker:
da sollte sich dann lieber mal einer der core entwickler dazu äussern.
Vielleicht @bluefox oder @apollon77?
-
@arteck sagte in Reverse Proxy und ioBroker:
es gibt einen proxy adapter
Danke für den Tipp, kannte ich noch nicht. Aber auch damit funktioniert es leider nicht.
-
@arteck sagte in Reverse Proxy und ioBroker:
es gibt einen proxy adapter
Danke für den Tipp, kannte ich noch nicht. Aber auch damit funktioniert es leider nicht.
Kennst Du diese Seite?
https://github.com/ioBroker/ioBroker.admin?tab=readme-ov-file#reverse-proxy
Aus meiner Sicht musst du im Tab "Reverse proxy" des Admin-Adapters Einträge machen:
Pfad (URL-Präfix) Ziel-Port /vis/8082/nodered/1880/roborock/z.B. 8088Im Nginx gibt es nur eine Weiterleitung an den Port 8081. Wichtig sind (mindestens) die Header
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;Danach erreichst du alles über deine eine Domain:
https://iobroker.deine-domain.de/ → Admin https://iobroker.deine-domain.de/vis/ → VIS https://iobroker.deine-domain.de/nodered/ → Node-REDIm Node-RED brauchst du zusätzlich in seiner settings.js den Eintrag
httpAdminRoot: '/nodered'undhttpNodeRoot: '/nodered'– sonst stimmen die internen Pfade nicht. Habe den Adapter nicht mehr installiert, kann auch sein, das man das in der Instanz Konfig einstellen kann.EDIT: den Reverse Proxy Adapter benötigt man nur, wenn man keinen NGINX betreibt.
-
Kennst Du diese Seite?
https://github.com/ioBroker/ioBroker.admin?tab=readme-ov-file#reverse-proxy
Aus meiner Sicht musst du im Tab "Reverse proxy" des Admin-Adapters Einträge machen:
Pfad (URL-Präfix) Ziel-Port /vis/8082/nodered/1880/roborock/z.B. 8088Im Nginx gibt es nur eine Weiterleitung an den Port 8081. Wichtig sind (mindestens) die Header
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;Danach erreichst du alles über deine eine Domain:
https://iobroker.deine-domain.de/ → Admin https://iobroker.deine-domain.de/vis/ → VIS https://iobroker.deine-domain.de/nodered/ → Node-REDIm Node-RED brauchst du zusätzlich in seiner settings.js den Eintrag
httpAdminRoot: '/nodered'undhttpNodeRoot: '/nodered'– sonst stimmen die internen Pfade nicht. Habe den Adapter nicht mehr installiert, kann auch sein, das man das in der Instanz Konfig einstellen kann.EDIT: den Reverse Proxy Adapter benötigt man nur, wenn man keinen NGINX betreibt.
@Marc-Berg sagte in Reverse Proxy und ioBroker:
Kennst Du diese Seite?
https://github.com/ioBroker/ioBroker.admin?tab=readme-ov-file#reverse-proxy
Genau. Hab das auch so am laufen.
Etwas darunter hab ich vor einiger Zeit auch noch ein ausführlicheres Beispiel ergänzt inkl. Screenshots. -
@Marc-Berg sagte in Reverse Proxy und ioBroker:
Kennst Du diese Seite?
https://github.com/ioBroker/ioBroker.admin?tab=readme-ov-file#reverse-proxy
Genau. Hab das auch so am laufen.
Etwas darunter hab ich vor einiger Zeit auch noch ein ausführlicheres Beispiel ergänzt inkl. Screenshots. -
Normalerweise benötigt die websocket Verbindung noch eine sonderbehandlung. Die kann der Adapter meines Wissens nicht
@OliverIO sagte in Reverse Proxy und ioBroker:
Normalerweise benötigt die websocket Verbindung noch eine sonderbehandlung. Die kann der Adapter meines Wissens nicht
Ging mir auch nicht um den iobroker.proxy adapter.
Das angesprochene example im admin readme ist mit nginx.
-
Kennst Du diese Seite?
https://github.com/ioBroker/ioBroker.admin?tab=readme-ov-file#reverse-proxy
Aus meiner Sicht musst du im Tab "Reverse proxy" des Admin-Adapters Einträge machen:
Pfad (URL-Präfix) Ziel-Port /vis/8082/nodered/1880/roborock/z.B. 8088Im Nginx gibt es nur eine Weiterleitung an den Port 8081. Wichtig sind (mindestens) die Header
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;Danach erreichst du alles über deine eine Domain:
https://iobroker.deine-domain.de/ → Admin https://iobroker.deine-domain.de/vis/ → VIS https://iobroker.deine-domain.de/nodered/ → Node-REDIm Node-RED brauchst du zusätzlich in seiner settings.js den Eintrag
httpAdminRoot: '/nodered'undhttpNodeRoot: '/nodered'– sonst stimmen die internen Pfade nicht. Habe den Adapter nicht mehr installiert, kann auch sein, das man das in der Instanz Konfig einstellen kann.EDIT: den Reverse Proxy Adapter benötigt man nur, wenn man keinen NGINX betreibt.
@Marc-Berg sagte in Reverse Proxy und ioBroker:
Kennst Du diese Seite?
Ja, klar. Habe ich alles mehrfach inkl. KI-Hilfe durchgespielt. Leider ohne Erfolg. Ich möchte z.B. nodered über das Menü im ioBroker aufrufen können. Das klappt einfach nicht. Also entweder auf SSL verzichten oder mit eigenen Links arbeiten. Scheinbar ist es nicht möglich den iFrame in einer https-Seite zu öffnen. Egal ob beim Adapter SSL aktiv ist oder nicht. Nur die Fehlermeldungen unterscheiden sich. Entweder die Warnung, dass eine unverschlüsselte Seite nicht in eine verschlüsselte eingebunden werden kann. Oder man bekommt einen Error 500.
@simonf04 sagte in Reverse Proxy und ioBroker:
Hab das auch so am laufen.
Mit SSL?
-
@Marc-Berg sagte in Reverse Proxy und ioBroker:
Kennst Du diese Seite?
Ja, klar. Habe ich alles mehrfach inkl. KI-Hilfe durchgespielt. Leider ohne Erfolg. Ich möchte z.B. nodered über das Menü im ioBroker aufrufen können. Das klappt einfach nicht. Also entweder auf SSL verzichten oder mit eigenen Links arbeiten. Scheinbar ist es nicht möglich den iFrame in einer https-Seite zu öffnen. Egal ob beim Adapter SSL aktiv ist oder nicht. Nur die Fehlermeldungen unterscheiden sich. Entweder die Warnung, dass eine unverschlüsselte Seite nicht in eine verschlüsselte eingebunden werden kann. Oder man bekommt einen Error 500.
@simonf04 sagte in Reverse Proxy und ioBroker:
Hab das auch so am laufen.
Mit SSL?
Schaue im Browser in den dev Tools mit F12
Im Network tab
Welche requests nicht funktionierenSsl Seiten in iFrames gehen auf http Seiten nicht,
Das ist aus Sicht des Browsers eine sicherheitslückeWenn beides ssl ist dann könnte es an Header informationen
der Seite im iframe liegen.Schaue nach x-Frame-Option oder der content security policy
Auch dazu kannst du dir in den dev Tools die requests anschauen und vor alle. Auch die response header anschauen