Tomcat

使用 Haproxy 的端到端 SSL 連接?

  • July 12, 2011

我想知道當我想通過伺服器建立 HTTPS 連接時 Haproxy 的反應。在 apache 中,我們有 aj_proxy 來建立與 tomcat 伺服器的 ssl 連接,因此如何使用 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本身得到了解決方案。我在 tomcat server.xml 配置中添加了 RemoteIpValue 類。我提到 internalProxies 的地方如下:

… internalProxies=“負載均衡器的 IP 地址列表” …

就我而言:

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

我建議nginx用作前端/反向代理,而不是stunnel將所有流量從 http 重定向到 https。

我不確定是否stunnel可以處理 http 重定向。

引用自:https://serverfault.com/questions/285784