2017-11-25 9 views
0

Ich habe eine aws ELB, hinter der ELB habe ich eine HAProxy.Proxy Websocket auf HTTPS von der Wurzel - HAProxy

Hier ist die Proxy-Konfigurationsdatei.

cat /etc/haproxy/haproxy.cfg

frontend http-traffic 
     bind *:80 
    acl is_websocket hdr(Upgrade) -i WebSocket 
     redirect scheme https if is_websocket 
     use_backend websocket if is_websocket 
     default_backend tomcat 

frontend https-traffic 
     bind *:443 ssl crt /etc/ssl/private/gayan.pem 
     reqadd X-Forwarded-Proto:\ https 
    acl is_websocket hdr(Upgrade) -i WebSocket 
     use_backend websocket if is_websocket 
     default_backend tomcat 

backend tomcat 
     reqirep ^([^\ :]*)\ /(.*)  \1\ /ImageServlet\2 
     server tc 172.20.135.97:8080 

backend websocket 
    reqirep ^Host:\ .* Host:\ demos.kaazing.com/echo 
    server ws demos.kaazing.com:443/echo ssl verify none 

Was ich versuche ist, wss://<ELB_A_RECORD> und es sollte zu demos.kaazing.com/echo websocket werden Proxying.

Aber ich bekomme 403 Fehler.

Mache ich etwas falsch?

enter image description here

+0

Bitte erwähnen Sie Ihre HAProxy Version (von 'haproxy -V'). Erfassen Sie auch die übereinstimmende Zeile aus den HAProxy-Protokollen. –

+0

Es ist 'HA-Proxy Version 1.6.13-1ppa1 ~ trusty 2017/06/19' Danke. –

Antwort

1

Dies führt an Sicherheit grenzender Wahrscheinlichkeit in einer falschen HTTP-Anforderung:

reqirep ^Host:\ .* Host:\ demos.kaazing.com/echo 

Der Host Header nur der Host-Header ist, Header und den Pfad nicht. Die Fehlermeldung hätte 400 Bad Request lauten müssen, da dies zu einer ungültigen Anforderung geführt hätte.

versuchen, diese Linie zu entfernen, und diese Zugabe:

http-request set-header Host demos.kaazing.com 
http-request set-path /echo 
+0

Danke. Es funktioniert –