Re: Поддержка клиентских SSL-сертификатов в модуле proxy

Maxim Dounin mdounin на mdounin.ru
Ср Дек 8 00:15:54 MSK 2010


Hello!

On Mon, Dec 06, 2010 at 06:24:58PM +0600, Alexey Morozov wrote:

> Здравствуйте!
> 
> Мы реализовали первоначальную поддержку клиентских SSL-сертификатов в модуле 
> proxy. На данный момент поддержка реализована для версии 0.7.x (в основном, 
> потому что в Debian Squeeze собирается именно эта ветка), в течение нескольких 
> дней мы планируем сделать соотв. изменения и для веток 0.8.x и 0.9.x
> 
> Несколько позднее планируется поддержка проверки серверного сертификата 
> (сейчас proxy не ругается даже когда бэкенд пользуется самоподписанным 
> сертификатом).
> 
> Изменения публикуются на https://github.com/amorozov/nginx , ветка navitel-
> client-crt-v0.7
> 
> Буду признателен, если у кого-нибудь найдётся время и желание посмотреть на 
> код и, возможно, высказать какие-то замечания.

Вот это:

+    // right now we have no proper infrastructure to check server certificates
+    // so we force the info_callback to be NULL
+    SSL_CTX_set_info_callback(plcf->upstream.ssl->ctx, NULL);

выглядит совершенно некорректно.  Info callback используется в 
nginx'е ровно для одной цели: запретить renegotiation.  Если 
хочется renegotiation при общении с бекендом разрешить - это надо 
делать по другому.  При чём тут проверка сертификатов сервера - 
вообще непонятно (хотя её тоже неплохо бы сделать).

Перенос ngx_http_proxy_set_ssl() некорректен.  Т.к. он после патча 
зависит от наследуемых значений (ssl_protocols, ...) - то вызывать 
его можно только после того, как соответствующие значения 
отнаследовались.

Ну и style problems в количествах.

Maxim Dounin

p.s. Настоятельно рекомендую патчи присылать в рассылку.  Ходить 
по ссылкам и выискивать где именно закопаны нужные патчи - это не 
совсем то, чем люди предпочитают заниматься на досуге.



Подробная информация о списке рассылки nginx-ru