Hi Joe,
thanks for your review and your detailed comments.

> Commits containing changes authored by someone other than the committer
> should have a "Submitted by: " line giving appropriate credit.
hmm, you mean with the SVN log? Sorry, forgot there - but it appears in CHANGES.

> This patch introduces the following warnings for a build with
> OPENSSL_NO_TLSEXT undefined.
I believe I've fixed these now - sorry but I didnt test on Linux yet;
 and with the NetWare compiler its not possible to develop with all warnings 
enabled.
Please let me know if I dodnt catch them all.

> My main comment: it's not obvious to me how this actually does what it
> needs to.  The issue with getting true SNI support is that the hostname
> sent in the ClientHello must cause a change to the selection of
> r->server early enough to ensure that any security policy specified in
> the vhost configuration is applied correctly (e.g. SSLVerifyClient) -
> not merely selection of the correct SSL_CTX (and hence server cert).  I
> can't see how this patch achieves that.  Any clues?  Has a configuration
> with an SSLVerifyClient specified in the named vhost been tested?
I must admit that I didnt think of this; 
I tested for the server certs only, and for this it works fine - the cert/name 
mismatch warning is gone.

> 1) There are numerous code style issues.  Please ensure new code added
> meets the style guide: http://httpd.apache.org/dev/styleguide.html
I tried now to meet the style guide, but at some places I was unsure - let me 
know what I missed.

> 2) Please don't introduce new global functions named "ssl_".  Use
> "modssl_".
hmmm, looking at all other functions in ssl_private.h the only two which are 
prefixed with "modssl_" are those two you recently introduced with OCSP 
support, all others are prefixed with "ssl_" only; so why you want this?

> 3) Calling an env var "SSL_TLS_..." is redundant; 
I prefixed it with "SSL_" since all mod_ssl vars are refixed with that...
> why is an extra env var necessary here anyway?
probably not - do you think I should remove it?

> 4) Why is it desirable to send a fatal TLS alert if no vhost is found
> matching the hostname in the clienthello?
what would you suggest there?

>> +    /*
>> +     * We will switch to another virtualhost and to its ssl_ctx
>> +     * if changed, we will force a renegotiation.
>> +     */

> That sentence doesn't make sense.
changed - let me know if that'S now better.

>> +    if (r->hostname && !SSL_get_servername(ssl,
>> TLSEXT_NAMETYPE_host_name)) {
>> +        SSL_CTX *ctx = SSL_get_SSL_CTX(ssl);

> That shadows a variable of the same name at function scope.
removed - from what I see it was anyway obsolete: some lines above we do 
already set the ctx if ssl is not NULL,
and if ssl is NULL we return before we can reach this code, so I think at this 
place ctx should already been set, or?

>> +        if (ssl_set_vhost_ctx(ssl,(char *)r->hostname) &&

> Why is the cast needed?
removed.

>> @@ -712,6 +816,8 @@
>>          /* XXX: proxy support? */
>>          ssl_init_ctx_cert_chain(s, p, ptemp, mctx);
>>      }
>> +
>> +    ssl_init_server_extensions(s, p, ptemp, mctx);
>>  }

> This is being called for both a server context and a proxy context, it
> is not necessary for the latter.
moved up so that its only called for server now.

> This warning has no less weight given the presence of SNI support in the
> version of OpenSSL against which mod_ssl is built.  Many (probably most)
> deployed clients do not support SNI and hence cannot support name-based
> vhosting with SSL.  I don't think this should be omitted, merely
> reworded.
hmmmm, this is where I didnt change yet - what would you propose here?

thanks again for your comments.

Guen.


Reply via email to