Hi there, I'm seeing some odd behavior with HAProxy 1.6.3 and the ordering of ssl & verify in my configuration file. I'm not sure if this is truly a bug or a misunderstanding on my part.
We are attempting to set up HAProxy to load balance SSL-enabled servers, but aren't currently concerned with CA verification. The HAProxy config file is currently being auto-generated by interlock(https://github.com/ehazlett/interlock), a tool that marries Docker Swarm & HAProxy quite nicely. But I've verified the problem exists with self-built config files & a stock HAProxy 1.6.3 as well. In the following backend configuration section: backend cloud_dev http-response add-header X-Request-Start %Ts.%ms balance roundrobin server dev1 3.101.113.47:32777 check inter 5000 ssl sni req.hdr(Host) verify none I receive the following error output: [ALERT] 062/205826 (31) : Proxy 'cloud_dev', server 'dev1' [proxy.conf:40] verify is enabled by default but no CA file specified. If you're running on a LAN where you're certain to trust the server's certificate, please set an explicit 'verify none' statement on the 'server' line, or use 'ssl-server-verify none' in the global section to disable server-side verifications by default. [WARNING] 062/205826 (31) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear. [ALERT] 062/205826 (31) : Fatal errors found in configuration. If I adjust the configuration section to place "verify none" immediately after the ssl statement: backend cloud_dev http-response add-header X-Request-Start %Ts.%ms balance roundrobin server dev1 3.101.113.47:32777 check inter 5000 ssl verify none sni req.hdr(Host) things work as expected. It appears that the ordering of the ssl & verify options is important - but my reading of the docs indicates that this shouldn't be the case: http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#ssl%20(Server%20and%20default-server%20options) http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#sni I'm going to send a pull request to interlock to adjust the generated server configs, but wanted to check first to see if there is an underlying bug with the way HAProxy handles the configuration files that needed to be reported as well. See inline for a minimal configuration file that exhibits the bug - just move "verify none" to the end to see it work as expected. thanks, -- Owen Marshall Senior Cloud Technologist | GE Appliances Testcase: defaults mode http timeout connect 5000 timeout client 10000 timeout server 10000 frontend http-default bind *:80 acl test_dev hdr_beg(host) test.dev use_backend test_dev if test_dev backend test_dev balance roundrobin server dev1 127.0.0.1:12345 check inter 5000 ssl verify none sni req.hdr(Host)