Hi.

Am 20.08.2018 um 10:20 schrieb Jean-Baptiste Berthelin:
> Hello,
> 
> Since I have upgrade my Chrome webbrowser (Version 68.x), I always have a 
> popup
> to choose the client certificat when reaching a HAProxy frontend.
> 
> After some tests, I only have this popup if :
>  - a "personal" certificate is stored on the webbrowser,
>  - and the bind instruction "verify" is set to "optional" or "required".
> 
> It seems to be possible to define different options according to the SNI with
> the "crl-file" parameter. The documentation says :
> 
> This setting is only available when support for OpenSSL was built in. It
> designates a list of PEM file with an optional ssl configuration and a SNI
> filter per certificate, with the following format for each line :
> 
>       <crtfile> [\[<sslbindconf> ...\]] [[!]<snifilter> ...]
> 
> sslbindconf support "npn 
> <https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#npn>", "alpn 
> <https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#alpn>", 
> "verify<https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#>", 
> "ca-file<https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#>", 
> "no-ca-names
> <https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#no-ca-names>",
> crl-file", "ecdhe 
> <https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#ecdhe>", 
> "curves 
> <https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#curves>", 
> "ciphers<https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#>" 
> configuration. With BoringSSL
> and Openssl >= 1.1.1 
> "ssl-min-ver<https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#>" 
> and 
> "ssl-max-ver<https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#>" 
> are also supported.
> It override the configuration set in bind line for the certificate.
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In my side, I try with the following configuration without success :
> 
> => frontend :
> 
> bind 0.0.0.0:443 ssl crt-list /etc/haproxy/domain_crt_list
> 
> => avec /etc/haproxy/domain_crt_list :
> 
> /etc/haproxy/domain-com.pem [verify optional] my.domain.com
> /etc/haproxy/domain2-com.pem *.domain.com
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> The certificate provided by the haproxy server is different according to the
> SNI, but the "verify" option is not take in account.
> 
> Is it a known bug or is there a workaround ?

Which haproxy version do you use? haproxy -vv
Do you get on both domains the popup or only on domain-com?
Do you have any error message in the log or stdout?
Does it help when you add [verify none] on domain2-com?

I can't see any error or bug in the while loop in the function
ssl_sock_load_cert_list_file but I'm not a c expert.

http://git.haproxy.org/?p=haproxy-1.8.git;a=blob;f=src/ssl_sock.c;hb=c1bfcd002f54d1d84a99282d13f875c2649f3d70#l3542

> Best regards
> 
> -- 
> 
> *Jean-Baptiste Berthelin*

Best regards
aleks

Reply via email to