Apache2 und WebSockets mit SSL Proxy

Sonic_cgn

mit wenig Erfahrung
Hallo zusammen,

ich würde gerne ein WebSocket auf einer HTTPS Seite zum laufen bringen. Bekomme ich aber nicht hin
Der Websocket Server läuft problemlos wenn ich es über http://ip:8080 anspreche. Dabei läuft meine IP auf die default.conf

Wenn ich das ganze nun auf https://www.seitexy.de/chat/ kopiere, bekomme ich entweder ein insecure error oder bei WSS ein Server not found.
Code:
var conn = new WebSocket('wss://www.seitexy.de/chat/:8080');
Laut meine Nachforschungen liegt es sicherlich an der fehlenden Config in meine vhost. Aber ich bekomme hier nicht die richtigen Einstellungen hin.

SSLEngine on

ProxyPreserveHost On
ProxyRequests Off

ProxyPass /chat/bin ws://127.0.0.1:8080/
ProxyPassReverse /chat/bin ws://127.0.0.1:8080/

SSLCertificateFile /etc/letsencrypt/live/www.seitexy.de-0002/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.seitexy.de-0002/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.seitexy.de-0002/fullchain.pem


Kennt sich da vielleicht jemand mit aus und kann mir hier weiter helfen?

Danke
 

sbr2d2

Registered User
Nur ein bis 2 Schüsse ins blaue, Webserver neu gestartet?
Und fehlt hier nicht jeweils ein s
Code:
ProxyPass /chat/bin ws://127.0.0.1:8080/
ProxyPassReverse /chat/bin ws://127.0.0.1:8080/

ProxyPass /chat/bin wss://127.0.0.1:8080/
ProxyPassReverse /chat/bin wss://127.0.0.1:8080/
Bin mir aber nicht sicher....
 

DeaD_EyE

Blog Benutzer
Ist https auf deinem Webserver funktional?

wss benötigst du, wenn der Dienst, der den Websocket anbietet, diesen auch verschlüsselt.
Ich vermute mal eher, das diesem Schema entsprechen soll:
[Browser] <=https/wss=> [Webserver] <==http/ws==> [NodeJs oder andere]

Damit https auch verfügbar ist, sollte der VHost für SSL konfiguriert sein und auch auf dem Port 443 lauschen.
Wenn dann einer Verbindung aufgebaut wird, fordert der Client beim Webserver ein "Connection Upgrade" an,
welches dann die Websocket-Verbindung einleitet. Damit das funktioniert, muss auch die Verbindung zu deinem Dienst funktionieren.

PS: Es sollte auf jeden Fall vom Webserver wss angeboten werden, da du ansonsten die Meldung bekommen wirst, dass die Verbindung nicht sicher ist.
 

danton

Debian User
Wenn ich das ganze nun auf https://www.seitexy.de/chat/ kopiere, bekomme ich entweder ein insecure error oder bei WSS ein Server not found.
Code:
var conn = new WebSocket('wss://www.seitexy.de/chat/:8080');
Von mir auch ein Schuss in Blaue. Müsst die Code-Zeile nicht so aussehen?
Code:
var conn = new WebSocket ('wss://www.seitexy.de:8080/chat/');
Ansonsten natürlich auf die Frage: Läuft der vHost Apache überhaupt, lassen sich also Dateien, die im Webroot liegen, abrufen?
 

DeaD_EyE

Blog Benutzer
Teste mal zuerst den WebSocket-Dienst hinter dem Apache2: https://github.com/vi/websocat

einmal mit:
ws://127.0.0.1:8080/

und dann mit:
wss://127.0.0.1:8080/

Beim zweiten wird es wahrscheinlich einen Timeout geben, es seiden du hast dir die Mühe gemacht und dort auch ein SSL-Zertifikat installiert.
 

DeaD_EyE

Blog Benutzer
Noch was:

Code:
'wss://www.seitexy.de/chat/:8080'
Diese Adresse ist falsch. Das Schema ist immer wie folgt:

protokoll://domain_oder_ip46:port/pfad?query=value

Richtig wäre:
Code:
'wss://www.seitexy.de:8080/chat/'
Wahrscheinlich hat sich damit das andere geschreibsel erledigt.
 
Top