staging.inyokaproject.org

nginx von externem server, WebSocket connection to ‘wss://xxx.org/api/websocket’ failed

Status: Gelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

k99

Anmeldungsdatum:
23. September 2020

Beiträge: Zähle...

Hallo miteinander, ich habe arge probleme meine homeassistant installation nach Umstellung auf ipv6 mit einem ds-lite tunnel für ipv4 wieder erreichbar zu machen. Manche Verbindungen funktionieren aber wenn extern nur ipv4 zur Verfügung steht dann nicht, so zumindest meine Vermutung. Meine Alexa Verbindung, (die über eine Amazon Lambda funktion läuft) will zumindest partout nicht.

Nach einigem hin und her habe ich nun einen kleinen Server mit fester ipv4 bei ionos laufen. Der Rechner hat eine vpn Verbindung in mein Netz und nginx soll nun routen. Der "Rahmen" der Homeassistant Startseite wird nun auch geladen. Die Inhalte werden aber wohl über eine wss Verbindung nachgeladen und da komme ich nicht weiter.

Wie gesagt wird der aüßere Rahmen geladen, dann erscheint aber mittig "unable to connect to homeassistant, retry in xx seconds". In der Console finde ich die genauere Meldung

Firefox kann keine Verbindung zu dem Server unter wss://xyz.duckdns.org/api/websocket aufbauen.

Nach viel Recherche und vielen versuchen steht in meiner nginx config nun das unten. Ich bin nicht sicher, ob der zweite "location" part mit da rein gehört oder vielleicht z.B. eigene listen ports braucht? Ich finde nichts vernünftiges dazu, was homeassistant da macht bzw. braucht. Hat jemand eine Ahnung davon oder Tips, was ich testen könnte?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 server {
                listen  80;
                listen 443;
                location / {
                         proxy_pass https://192.168.178.80;
                         proxy_set_header X-Real-IP $remote_addr;
                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                         proxy_set_header X-Forwarded-Proto $scheme;
                         proxy_set_header Upgrade $http_upgrade;
                         proxy_set_header Connection "upgrade";
                }
                location /api/websocket {
                        #resolver 127.0.0.11 valid=30s;
                        set $upstream_homeassistant 192.168.178.80;
                        proxy_pass http://$upstream_homeassistant:8123;
                        proxy_set_header Host $host;

                        proxy_http_version 1.1;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                }
        }

Eindeutig ist nur, dass das routing von https://xyz.duckdns.org funktioniert, die wss weiterleitung aber nicht. Der zweite location Part, den ich dafür nun zusammengesucht habe macht da keinen Unterschied, die Fehlermeldung ist mit und ohne die gleiche (Firefox kann keine Verbindung zu dem Server unter wss://xyz.duckdns.org/api/websocket aufbauen.)

Danke im voraus für jeden Tipp 😉

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17531

Schuss ins Blaue, aber: Läuft den HTTPS auf 443? wss:// braucht nämlich SSL/TLs/HTTPS, ws:// nicht, aber die meisten Browser wollen für WebSockets wohl mittlerweile Verschlüsselung sehen, so wie auch für manch andere moderne Features.

k99

(Themenstarter)

Anmeldungsdatum:
23. September 2020

Beiträge: 14

Hi, ich bin gerade nicht sicher wie Du es meinst aber https://xyz.duckdns.org funktioniert,es leitet sofort um auf https://xyz.duckdns.org/lovelace und lädt dann wie beschreiben den Rahmen, der aber dann versucht über wss weiter zu machen.

http://xyz.duckdns.org leitet ebenfalls genauso um, wie oben. https und http scheinen also beide zu funktionieren.

Nur das Nachladen von Firefox wss://xyz.duckdns.org/api/websocket bringt sofort, dass keine Verbindung aufgebaut werden kann.

Jetzt stelle ich aber gerade fest, dass ich auf einem anderen Gerät die Meldung bekomme, dass keine sichere Verbdinung ausgebaut werden kann. Aber hier auf dem lapotop weiterhin doch. Kann es sein, dass man da noch unterscheiden muss zwischen einem ipv4 oder 6 Clienten? Das müsste doch Wurst sein, ist ja auch sinn der Sache. Ich habe aber gerade keine andere Idee, warum der Rechner das lädt ein Tablet (aus dem gleichen WLAN!) aber nicht.

Aus purer Verzweiflung: Es geht um xyz.duckdns.org, ich kann ja später eine andere Domain nehmen, seufz. Ich verstehe zumindest gerade die Welt nicht mehr richtig...

Bearbeitet von schwarzheit:

Änderung wg. Datenschutz.

k99

(Themenstarter)

Anmeldungsdatum:
23. September 2020

Beiträge: 14

Okay, also ich bin (nicht) weiter: Habe die Zertifikate auf dem externen Server installiert, der Laptop hatte die scheinbar nur gecached. Muss den nginx jetzt wohl noch gründlich umkonfigurieren. Ich recherchiere mal...

Bin wieder auf den Cache reingefallen, vom Tablet aus kommt noch der gleiche Fehler, die beiden pem Dateien vom Homeassistant scheinen auf dem externen Server nicht zu funktionieren.

lg

k99

(Themenstarter)

Anmeldungsdatum:
23. September 2020

Beiträge: 14

Hi, also nun scheint es zu funktionieren. Die Zertifikate müssen auf dem externen Rechner liegen. Der muss ssl auflösen (443 ssl), die Weiterleitung auf den homeassistant muss an port 8123 nicht 80. Eine xtra Weiterleitung für wss braucht es dann nicht.

Antworten |