HA代理 - 未能使ssl_fc_sni应用于SSL连接。

问题描述 投票:0回答:1

我试图使用HA Proxy转发到2个后端服务器,这2个后端服务器都用SSL监听。我不想终止HA Proxt上的SSL,但如果这是唯一的解决方案,我会终止。但从我所读到的内容来看,我所要求的并不是不可能的。为了路由到正确的服务器,我需要看到请求的目的地。根据我所读到的,ssl_fc_sni是解决这个问题的方法,因为SNI头可以在SSL连接中查看。所以,考虑到这一点,我有了这个。

# Default HTTP frontend
frontend http_frontend
    bind 192.168.50.3:80
    redirect scheme https code 301

# Default HTTPS frontend
frontend https_frontend
    bind 192.168.50.3:443
    mode tcp
    option tcplog
    use_backend web_server_1 if { ssl_fc_sni web_server_1.mydomain.com }
    default_backend web_server_2

# web_server_1 backend
backend web_server_1
    mode tcp
    option ssl-hello-chk
    server web_server_1 192.168.100.30:443

# Fallback backend
backend web_server_2
    mode tcp
    option ssl-hello-chk
    server web_server_2 192.168.100.29:443

但这是行不通的 所有的请求都被路由到默认的后端(web_server_2),我不明白为什么。一定有一种方法可以通过headersSNI路由SSL请求。

谁能指出我遗漏了什么?

haproxy
1个回答
0
投票

你将需要添加 tcp-request inspect-delay

# Default HTTPS frontend
frontend https_frontend
    bind 192.168.50.3:443
    mode tcp
    option tcplog

    tcp-request inspect-delay 5s
    tcp-request content capture req.ssl_sni len 25
    tcp-request content accept if { req.ssl_hello_type 1 }

    use_backend web_server_1 if { req.ssl_sni web_server_1.mydomain.com }
    default_backend web_server_2

文件 req.ssl_sni

© www.soinside.com 2019 - 2024. All rights reserved.