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

End to End SSL-соединение с использованием Haproxy?

Я хочу знать, как Haproxy реагирует, когда я хочу установить HTTPS-соединение через сервер. В apache у нас есть aj_proxy для создания ssl-соединения с сервером tomcat, поэтому как эту функциональность можно поддерживать с помощью stunnel. Мы используем Haproxy v1.4.13. Наш сценарий состоит в том, что мы хотим поместить сертификаты в stunnel и поддерживать сеанс HTTPS. Мы просто используем простой HTTP в бэкэнде. Итак, когда я получаю доступ к https://www.domain.com/login браузер проверяет сертификат, но после того, как я вхожу в систему, снова используется HTTP, поскольку он получает контент с простых HTTP-серверов tomcat.

Итак, есть ли способ, которым я могу постоянно подключаться по протоколу HTTPS. Ниже приведен файл конфигурации stunnel:

sslVersion = all
options = NO_SSLv2
;Debug
debug = 7
output = /usr/local/etc/stunnel/stunnel.log
chroot = /var/tmp/stunnel

setuid = nobody
setgid = nobody
pid = /stunnel.pid

cert = /usr/local/etc/stunnel/stunnel.pem
;Some Performance Tunings

socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
[https]
client = noaccept = 10.12.12.1:443
connect = 10.12.12.1:84
xforwardedfor=yes
TIMEOUTclose = 0

И конфигурация внешнего интерфейса Haproxy HTTPS:

.
.
.
listen https 10.12.12.1:84
    mode http
cookie JSESSIONID prefix
balance roundrobin
option forwardfor except 10.12.12.1
option httpclose
option http-server-close
server S1   10.12.12.2:8080 cookie server1  maxconn 5000    check
server S2   10.12.12.3:8080 cookie server2  maxconn 5000    check
.
.

Любая помощь будет высоко оценена.

Наконец-то я получил решение самой stunnel. Я добавил класс RemoteIpValue в конфигурацию tomcat server.xml. Где я упомянул внутренние прокси, как показано ниже:

... internalProxies = "список IP-адресов балансировщиков нагрузки" ...

В моем случае:

internalProxies="10\.12\.12\.1"

Я бы предложил использовать nginx в качестве внешнего / обратного прокси вместо stunnel и перенаправить весь трафик с http на https.

Я не уверен, если stunnel может обрабатывать перенаправления http.