ssl renegotiation on nginx 1.13.+
Maxim Dounin
mdounin на mdounin.ru
Пн Сен 18 14:18:29 UTC 2017
Hello!
On Sat, Sep 16, 2017 at 11:52:05PM +0300, Mike Patutin wrote:
> Немного странный вопрос, в чем смысл renegotiation на backend коннектах и
> для чего это нужно?
Это нужно для того, чтобы nginx мог общаться с бекендами, которые
пытаются инициировать renegotiation для запроса сертификата.
> Можно ли применить эти изменения для реализации следующей схемы:
>
> Клиентом является железка, которая умеет ssl соединение с сервером
> управления (tomcat).
> Железка сначала регистрируется на сервере, и он ей отдает сертификат,
> который в последующем используется для ее авторизации.
> Т.е на определенный URL можно сделать запрос по https без корретного
> сертификата, на другие - нет
> В первый момент железка делает запрос с собственным сертификатом,
> выполяняются определенные действия, передается корректный сертификат
> авторизации, а потом томкат вызывает тот самый renegotiation и дальнейший
> обмен не может быть выполнен без авторизации по сертификату.
> Поменять поведение железки - не могу в принципе (жесточайшее legacy, причем
> часть просто не обновляемая в принципе)
> Томкатом в определенных пределах могу управлять.
> Железок много, приходится делать балансировщик. И вот тут я столкнулся с
> невозможностью пробросить ssl renegotiation c бекенда на клиента.
Если я правильно понял задачу, то она не решается иначе как
установлением прямого соединения между клиентом и сервером
управления. Ну или сложной логикой, которая бы меняла
сертификаты, посылаемые клиентом в исходном запросе.
Потому что если клиент прислал сертификат, и сервер управления его
проверяет - то одной из решаемых задач является защита от
MitM-атак. А попытка вставить между ними nginx - это фактически и
есть MitM-атака.
> Я правильно понимаю что заявленный функционал в 1.13 предназначен для
> реализации подобной схемы, или это не так?
Нет, это не так.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru