Hello all,

I¹ve written up Willy and Emeric¹s proposal and it seems to test fine, at
least from a functionality standpoint.

I would appreciate it if interested parties would beat on this harder than
I did to work out kinks.

To recap for those that are new:

You can now specify <path_to_cert> as a crt or a crt-list entry, but
<path_to_cert> will not actually exist. Instead, there will be
<path_to_cert>.rsa, <path_to_cert>.ecdsa and/or <path_to_cert>.dsa. The
code will load what¹s available and create (up to) 7 unique SSL_CTX with
the correct sets of keys and certs. It then adds these to the SNI lookup
tree, and sets a default context if one has not been set.

A couple of things to note:

1) The default context will be set to the SSL_CTX that contains the set of
most oftenly used key formats. So currently, it will prefer contexts that
contain RSA, ECDSA then DSA in that order. SSL_CTX¹s with more key types
will be preferred over SSL_CTX¹s with fewer key types.
2) The code for processing the CN/SAN¹s is quite complex. I¹ve added as
many comments as I thought was needed, but it still is not simple to read.
The logic though is simple:

- Load info of each crt entry.
- Iterate through all CN/SAN entries and map each entry to which key types
contain it
- Iterate through list of entries to create the requisite SSL_CTX¹s and
add the SSL_CTX to the sni_tree based on the current CN/SAN

Time to process is O(N) where N=# of CN/SANs.

In the interest of not clogging up everyone¹s inboxes, I¹ve put the
patches on pastebin, let me know if that works.

Patch 1 - http://pastebin.com/B9KXnEZN
Patch 2 - http://pastebin.com/qFXq2Pbe
Patch 3 - http://pastebin.com/F9Y1N2YN

Please take a look.
-Dave


On 12/1/15, 10:09 AM, "Willy Tarreau" <w...@1wt.eu> wrote:

>Hi Dave,
>
>On Tue, Dec 01, 2015 at 03:04:21PM +0000, Dave Zhu (yanbzhu) wrote:
>> I apologize for not responding sooner, I was waiting for more comments
>>before
>> starting implementation, then this fell off my radar when other
>> responsibilities picked up.
>
>No problem, we're all in the same situation, don't worry!
>
>> I???ve got some downtime and can start working on Willy???s proposal,
>>if that
>> will meet the requirements of the people here.
>
>That would be awesome! That said, don't put yourself under pressure,
>yes it's something that people would love to have but don't stop all
>your activities for this. I tend to think that there are people
>volunteering for testing here given the demand, so do not hesitate
>to post preview patches as you did initially.
>
>Cheers,
>willy
>


Reply via email to