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.