>>> For those first 3 points we don't need renegotiation.

>>> Current implementation is buggy, but once we merge:
>>> "BUG/MEDIUM: ssl: fix verify/ca-file per certificate"

>>> all those issues will be addressed, without complex workarounds or 
>>> multiple IPs.

For     2.Allow to have the default cert to use for non-SNI client for the 
        same domain used also for client certificate request

I done a test that demonstrates a not working behavior.
Emmanuel write me why. See test case and Emmanuel answer:

                My test Case and question:
                        . haproxy.conf:
                        bind <IP1>:443 ssl crt-list /etc/haproxy/crt-list.txt
 
                        . crtlist.cfg:
                        <path>/cert1.pem [ca-file /<path>/ca1.pem ca-file 
/<path>/ca1.pem verify optional]
                        <path>/cert2.pem
                        <path>/cert3.pem
 
                        but any request for any domain for any hostname pop-up 
on the client side client certificate selection window
                        popup selection is presented to client also for domain 
not in cert1.pem but in cert2.pem and cert3.pem.
                        Also: what is the default certificate for not-SNI 
client if one use crt-list file instead of crt on bind line ? (without crt-list 
file is the first crt in the bind line)

                Emmanuel answer:
                        The default cert is always the first cert parsed. It's 
cert1.pem in your configuration.
                        The default cert is a source of errors because it's 
used in the SSL negotiation.
                        The [ca-file <pem> verify optional] is also present in 
the SSL negotiation, the switch to the correct cert will not override it.
                        => You must move the cert1.pem later in your 
configuration and let the default cert as neutral as possible.

                        It's a open problem with openssl. I have trying to 
create a neutral SSL context (without any certificat)  before select the 
certificat, but openssl don't like that.
                        Without a real solution, this behaviour should be 
documented.

I think using renegotiation you'll manage all client cert aspects and improve 
overall client cert haproxy management process.

Roberto




-----Original Message-----
From: Lukas Tribus [mailto:[email protected]] 
Sent: sabato 4 marzo 2017 12.15
To: mlist <[email protected]>; '[email protected]' <[email protected]>
Cc: 'Emmanuel Hocdet' <[email protected]>
Subject: Re: Client Cert Improvements

Hi Roberto,


Am 04.03.2017 um 11:51 schrieb mlist:
>
> Hi,
>
> after discussing about haproxy client certificate management with 
> other forum users/devel, I ask if it is possible to improve haproxy 
> client certificates management
>
> with this case specs:
>
> Allow haproxy to manage client certificates using technique like SSL 
> Renegotiation - as Apache do (see below). This will introduce many
>
> improvements allowing to apply simply up to the level of directory and 
> allowing to use acl logic haproxy just employ, to the client certificate
>
> management process.
>
> Apache (SSLVerifyClient Directive)
>
>                         This directive sets the Certificate 
> verification level for the Client Authentication. Notice that this 
> directive can be used both in per-server and per-directory context. In 
> per-server context it applies to the client authentication
>
> process used in the standard SSL handshake when a connection is 
> established. In per-directory context it forces a SSL renegotiation 
> with the reconfigured client verification level after the HTTP request 
> was read but
>
> before the HTTP response is sent.
>
>                         Also "IIS" allow this level of configuration
>
> Requisites:
>
> 1.Share one IP, without forcing to use different bind on different 
> ip:443 pairs wasting IPs
>
> 2.Allow to have the default cert to use for non-SNI client for the 
> same domain used also for client certificate request
>
> 3.Avoid trick configuration with localhost:port redirection that 
> introduce confusion and pose issues on complex configurations (ie: 
> http://serverfault.com/questions/662662/haproxy-with-sni-and-different-ssl-settings)
>

For those first 3 points we don't need renegotiation.

Current implementation is buggy, but once we merge:
"BUG/MEDIUM: ssl: fix verify/ca-file per certificate"

all those issues will be addressed, without complex workarounds or 
multiple IPs.



> 4.Allow to filter with simple acl at which: domain, hostname, 
> directory or sub directory level haproxy start client certificate 
> request so on the client side will be popped up client cert selection 
> window
>

It doesn't sound like you actually need this feature (you said "using a 
dedicated ip:443 is a clean solution", which does not cover requisite 4).
I would rather not have a complex feature that basically nobody ever 
uses, that introduces a lot of complexity in our code and that probably 
triggers a ton of client side bugs in browser and MITM SSL interception 
devices.

We need SNI based client certificate configuration. It is buggy right 
now and will be fixed.


just my two cents,
lukas


Reply via email to