我有一个单一的前端,但有多个后端。我正在升级一些后端的安全性,作为其中的一部分,我只想允许TLS1.2或更高版本,当接收到这些特定后端的请求时。还有一些客户在使用其他后端,所以我现在不想打断他们。
我有一个配置,类似于下面的配置。我尝试在后端设置"ssl-min-ver“,也尝试在后端添加”no-ssl 3 no- the 10 no the 11“选项,但这显然是无效的。
因此,我的问题是,当使用后端"api-test“时,需要最小版本的TLS 1.2,而其他两个后端不受影响。
下面是我所指的配置:
frontend frontend_ssl
bind *:443 ssl crt /certificate.[somename].com.pem crt /etc/haproxy/certificates/
acl is_api_[somename]_com hdr(host) -i api.[somename].com
acl is_api_[somename]_test hdr(host) -i test-api.[somename].com
use_backend api_prod if is_api_[somename]_com
use_backend api_test if is_api_[somename]_test
default_backend app_iis_http_4430
backend app_iis_http_4430
server dk1h1iis 10.10.1.1:4430 check port 4430
server dk1h2iis 10.10.1.2:4430 check port 4430
backend api_prod
server dk1h1docker_prod 10.10.1.1:855 check port 855
server dk1h2docker_prod 10.10.1.2:855 check port 855
backend api_test
server dk1h1docker_test 10.10.1.1:856 check port 856
server dk1h2docker_test 10.10.1.2:856 check port 856编辑:我尝试了文档中提到的选项:https://cdn.haproxy.com/documentation/hapee/1-8r2/traffic-management/tls/#define-server-directive-settings-on-the-backend
所以我的api测试后端现在看起来如下:
backend api_test
server dk1h1docker_test 10.10.1.1:856 no-sslv3 no-tlsv10 no-tlsv11 check port 856
server dk1h2docker_test 10.10.1.2:856 no-sslv3 no-tlsv10 no-tlsv11 check port 856不过也没什么用。我仍然可以用TLS1.0访问服务器
发布于 2021-02-10 07:58:04
我试图实现的问题,以及我所拥有的配置,就是前端和后端之间的通信没有SSL/TLS,所以不可能限制到任何版本。
相反,我现在使用ACL并拒绝使用不推荐版本的http请求,在前端进行检查。
acl is_api_test hdr(host) -i test-api.[somename].com
acl is_ssl_version_deprecated ssl_fc_protocol SSLv3 TLSv1 TLSv1.1
http-request reject if is_api_test is_ssl_version_deprecatedhttps://serverfault.com/questions/1052940
复制相似问题