• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

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
 
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....
 
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.
 
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?
 
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.
 
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.
 
Back
Top