Назад | Перейти на главную страницу

Как перенаправить действительный трафик SSL через Haproxy на локальные серверы

У меня есть инфраструктура с балансировкой нагрузки, в которой есть сервер haproxy в качестве балансировщика нагрузки и несколько серверов Apache в качестве бэкэндов. Я хочу перенаправлять трафик https на серверы. Я знаю, что есть два типа этого: завершение SSL, которое обрабатывает шифрование / дешифрование 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-сертификата на внутреннем сервере. Но я не знаю, как это решить.
Любая помощь приветствуется.