Как перенаправить действительный SSL-трафик через Haproxy на локальные бэкэнды
У меня есть инфраструктура с балансировкой нагрузки, в которой есть haproxy-сервер в качестве балансировщика нагрузки и некоторые серверы apache в качестве бэкэндов. Я хочу перенаправить трафик https на серверные. Я знаю, что есть два типа выполнения: SSL Termination, который обрабатывает шифрование / дешифрование SSL на haproxy-сервере, и SSL Pass-Through, который перенаправляет трафик https на внутренний сервер. вот моя конфигурация для haproxy:
global
log 127.0.0.1 local2 #Log configuration
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend http_main
bind *:80
mode http
option http-server-close
option forwardfor
default_backend app-main
backend app-main
balance roundrobin
server web1 192.168.1.25:80
frontend https_main
bind *:443
mode tcp
option tcplog
default_backend app-ssl
backend app-ssl
balance roundrobin
mode tcp
option ssl-hello-chk
server web1 192.168.1.25:443 ssl no-sslv3
Мой внутренний сервер также имеет публичный IP-адрес. Когда я проверяю свой домен с общедоступным IP-адресом внутреннего сервера, я могу правильно видеть веб-сайт с проверенным SSL в браузере. Но когда я хочу проверить домен с IP-адресом балансировщика нагрузки, я получаю следующую ошибку в Firefox:
An error occurred during a connection to mydomain.com. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG
The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
Please contact the web site owners to inform them of this problem.
Я добавил локальный IP-адрес 192.168.1.25 в httpd.conf внутреннего сервера для конфигураций виртуальных хостов http и https. Я думаю, что проблема заключается в проверке SSL-сертификата с внутреннего сервера. Но я понятия не имею, как решить эту проблему.
Любая помощь приветствуется.