Eu quero usar meu Haproxy 1.6.5 como balanceador de carga Https antes de meus servidores https, mas fiquei com um problema de incompreensão.
Eu quero esse comportamento: o haproxy está disponível como link , mas por trás dele há vários servidores https com certificados auto-assinados que não posso alternar para http.
Então eu configurei meu frontend tcp para isso como
frontend tcp_in
mode tcp
option tcplog
bind *:443 ssl crt /etc/ssl/certs/server.bundle.pem
maxconn 50000
tcp-request inspect-delay 5s
tcp-request content accept if { req.ssl_hello_type 1 }
acl example_acl req.ssl_sni -i example.com
use_backend special_example if example_acl
Depois disso, quero enviar meu tráfego para um dos back-ends, mas o ponto é que desejo solicitar algo como https: \ eimA.customer.local de backend1 e https: \ eimB.customer.local de backend2
Meu palpite é que preciso reescrever o cabeçalho do host na solicitação. (Provavelmente não funcionará no modo tcp. Então, como posso modificar a configuração para fazer isso?)
Minha configuração de back-end é:
backend special_eims
mode tcp
option tcplog
balance roundrobin
stick-table type binary len 32 size 30k expire 30m
acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2
tcp-request inspect-delay 5s
tcp-request content accept if clienthello
tcp-response content accept if serverhello
server eim1 eimA.customer.local:443 check
server eim2 eimA.customer.local:443 check
stick on payload_lv(43,1) if clienthello
stick store-response payload_lv(43,1) if serverhello
Como resultado da minha configuração, recebo erro de conexão ssl no navegador
e
curl -v https://example.com/default -k
* About to connect() to example.com port 443 (#0)
* Trying 127.0.0.1... connected
* Connected to example.com (127.0.0.1) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* NSS error -12263
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
A conexão direta ao servidor backend com o link retorna o erro 404, de modo que somente o formato link é permitido.
Por favor me ajude, desculpe se a pergunta é burra.