Hi Marshall,

Le 07/03/2016 16:56, Marshall, Owen (GE Appliances) a écrit :
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 for the details, it helped me to reproduce the bug. It looks to happen only with the "sni" keyword, where 2 parts in the code try to increment the argument index during the server line parsing.

I'm working on a patch.

--
Cyril Bonté

Reply via email to