Я хочу знать, как 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.