Ssl
在 HaProxy 中使用特定後端時,僅需要最低版本的 TLS (1.2)
我有一個前端,但有多個後端。我正在升級某些後端的安全性,作為其中的一部分,我希望在獲取對這些特定後端的請求時只允許 TLS1.2 或更高版本。仍然有客戶在使用其他後端,所以我現在不想打擾他們。
我有一個配置,類似於下面的配置。我嘗試在後端設置“ssl-min-ver”,也嘗試在後端添加“no-ssl3 no-tls10 no-tls11”選項,但這顯然是無效的。
所以我的問題是,我該如何做到這一點,當使用後端“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 -後端
所以我的 api-test 後端現在看起來像這樣:
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 訪問伺服器
我試圖通過什麼配置實現的問題是前端和後端之間的流量沒有 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_deprecated