Haproxy с istio-ingressgateway в качестве бэкэнда SSL - PullRequest
1 голос
/ 16 марта 2019

Изначально я тестирую в режиме tcp, и это работает.Ниже приведена конфигурация haproxy tcp passthru:

frontend https_in
        bind *:443
        mode tcp
        option forwardfor
        option tcplog
        log global
        default_backend https_backend

backend https_backend
        mode tcp
        server s1 10.21.0.60:31390 check
        server s2 10.21.0.169:31390 check
        server s3 10.21.0.173:31390 check

Как должна выглядеть конфигурация режима http?Мне нужно расшифровать трафик, внедрить некоторые заголовки (например, forwarded-for) и снова зашифровать его, отправив его в серверную часть ssl istio ingress-gateway.

У меня было много попыток конфигурирования (и они не увенчались успехом), вот один снимок:

frontend https_in
    mode http
    bind *:443 ssl crt /etc/haproxy/prod.pem crt /etc/haproxy/dev.pem crt /etc/haproxy/stg.pem no-sslv3

    option http-server-close
    option forwardfor
    reqadd X-Forwarded-Proto:\ https
    reqadd X-Forwarded-Port:\ 443

    rspadd  Strict-Transport-Security:\ max-age=15768000

    tcp-request inspect-delay 5s
    tcp-request content accept if { req_ssl_hello_type 1 }
    acl acl_app1 req_ssl_sni -i mydomain.test
    use_backend https_backend if acl_app1

backend https_backend
    mode http
    server s1 10.21.0.60:31390 check ssl verify none

В журналах haproxy я вижу

haproxy[12734]: Server https_backend/s1 is DOWN, reason: Layer6 invalid response, info: "SSL handshake failure (Connection reset by peer)", check duration: 1ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
haproxy[12734]: Server https_backend/s1 is DOWN, reason: Layer6 invalid response, info: "SSL handshake failure (Connection reset by peer)", check duration: 1ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
haproxy[12734]: backend https_backend has no server available!

Если я снимаю проверку и все еще пытаюсь запросить haproxy:

haproxy[13381]: https_in~ https_in/<NOSRV> -1/-1/-1/-1/0 503 213 - - SC-- 1/1/0/0/0 0/0 "GET / HTTP/1.1"

Я не могу определить SNIнастройки для передачи из haproxy в istio, чтобы он работал.

Я не могу найти ничего полезного в журналах от envoyproxy и istio-ingressgateway на уровне журнала отладки.

...