I have a single frontend, but multiple backends. I'm upgrading security on some backends, and as a part of that, i want to only allow TLS1.2 or higher, when getting requests to those specific backends. There's still customers using the other backends, so I don't want to disrupt them, right now.
I have a config, similar to the one below. I've tried to set "ssl-min-ver" in the backend, I've also tried to add "no-ssl3 no-tls10 no-tls11" options to the backend, but that is apparently invalid.
So my question is, how do i make it so, that when backend "api-test" is used, a minium version of TLS of 1.2 is required, while the two other backends are unaffected?
Here is the config I'm referring to:
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
EDIT: I've tried the options mentioned in the documentation here: https://cdn.haproxy.com/documentation/hapee/1-8r2/traffic-management/tls/#define-server-directive-settings-on-the-backend
so my api-test backend now looks like this:
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
It didn't help though. I can still reach the servers with TLS1.0