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