Hi,
Le 04/10/2015 17:16, Julien Vehent a écrit :
Hi everyone,
I'm working on a configuration that routes to a different backend based
on the TLS version, using:
acl modern_tls req_ssl_ver 3.3
However, it appears that the acl never returns true. I'm testing with:
$ openssl s_client -connect <target>:443 -servername <target> -tls1_2
I tried various syntax too, such as "req_ssl_ver 3.3:3.99", but none work.
Am I misusing this ACL? My configuration is below. Build version at the
bottom of this email.
frontend https-in
bind 0.0.0.0:443
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
acl sni_jve req.ssl_sni -i jve.linuxwall.info
acl sni_mig req.ssl_sni -i mig.ninja
acl modern_tls req_ssl_ver 3.3
use_backend mig_https if sni_mig modern_tls
use_backend jve_https if sni_jve modern_tls
# fallback to backward compatible backend
default_backend jve_https_old
I think this is because openssl s_client sends v3.1 (TLSv1.0) for the
initial Client Hello :
https://www.openssl.org/news/changelog.html#x17
You can verify with a network capture.
Maybe you can also try with "curl --tlsv1.2" which should use a 3.3 version.
--
Cyril Bonté