HaProxy - 502 Bad Gateway: HTTP wird am HTTPS-Port gesprochen

8

Ich werde versuchen, mein Problem zu erklären.

Ich arbeite an HaProxy 1.5.8 / Apache 2.2 und versuche, eine SSL-Konfiguration vorzunehmen, aber ich scheitere und scheitere und scheitere.

Sehen wir uns einige Protokolle an:

Haproxy-Protokolle

Aug 13 17:00:28 localhost haproxy[10930]: x.x.x.x - - [13/Aug/2015:15:00:28 +0000] "URLxxxxx HTTP/1.1" 502 +656 "" "" 50567 131 "FT-https-in~" "BK-https-out" "myserver-https" 13 0 1 -1 +17 PH-- 0 0 0 0 0 0 0 "" "" 

Apache-Fehlerprotokolle

[Thu Aug 13 17:02:38 2015] [debug] ssl_engine_kernel.c(1903): OpenSSL: Exit: error in SSLv2/v3 read client hello A
[Thu Aug 13 17:02:38 2015] [info] [client haproxy-server] SSL handshake failed: HTTP spoken on HTTPS port; trying to send HTML error page
[Thu Aug 13 17:02:38 2015] [info] SSL Library Error: 336027804 error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request speaking HTTP to HTTPS port!?

Meine HaProxy-Konfiguration:

# - Frontend - HTTPS in
frontend FT-https-in
bind *:443 ssl crt /etc/haproxy/ssl/my_cert.pem
log global
option forwardfor except 127.0.0.1
option httplog clf
option log-separate-errors
option logasap
redirect scheme https if !{ ssl_fc }
default_backend BK-https-out


# - Backend - HTTPS out
backend BK-https-out
mode http
option forwardfor except 127.0.0.1/8 header X-Forwarded-For
log global
option httplog clf
option tcplog
option http-pretend-keepalive
option http-server-close
# pool de serveur du backend
server myserver-https x.x.x.x:443 check

Ich habe versucht, mein Problem mit der Header-Konfiguration wie folgt zu beheben:

 http-request set-header X-Forwarded-Port %[dst_port]
 http-request add-header X-Forwarded-Proto https if { ssl_fc }
 http-request add-header X-Proto https if { ssl_fc }
 http-request set-header X-SSL %[ssl_fc]

Meine PEM-Datei ist wie folgt aufgebaut: crt / key / bundle

Aber Problem noch hier. Wenn jemand eine Idee hätte, mir zu helfen!

Vielen Dank

Ze.Miw
quelle

Antworten:

10

Sie müssen HAproxy mitteilen, dass der Backend-Server SSL verwendet:

server myserver-https x.x.x.x:443 ssl check verify none

Der Teil 'verify none' weist haproxy an, die Zertifikatkette nicht zu überprüfen. Ich habe es aufgenommen, aber es ist möglicherweise nicht notwendig.

Sie sollten keine der von Ihnen angegebenen Kopfzeilen benötigen, es sei denn, Sie möchten sie.

Jim G.
quelle
1
Vielen Dank! Ich verbrachte die bessere Hälfte meines Tages damit, dies zu beheben.
Taylor Glaeser