Nginx + Android + ssl = 400
Aleksandr Sytar
sytar.alex at gmail.com
Tue Mar 3 18:50:55 UTC 2015
3 марта 2015 г., 20:30 пользователь ingtar <nginx-forum at nginx.us> написал:
> Тогда я ничего не понимаю :) Можно я вам расскажу свое понимание работы
> nginx, а вы меня поправите? Может быть у меня фундаментальная дара в
> знаниях, я такое не отрицаю :)
>
> Есть два файла конфигов в директории conf.d
>
> example1.conf
> server {
> listen *:80;
> listen *:443 ssl;
> server_name example1;
> ssl_certificate 1.crt;
> ssl_certificate_key 1.key;
> }
>
> example2.conf
> server {
> listen *:80;
> listen *:443 ssl;
> server_name example2;
> ssl_certificate 1.crt;
> ssl_certificate_key 1.key;
> ssl_client_certificate ca.crt;
> ssl_verify_client on;
> }
>
> Клиент устанавливает с сайтом example1 соединение. Запрос с хэдером этого
> сайта приходит на сервер, обслуживающий указанный ИП адрес (Client Helo).
> Nginx принял запрос, по хедеру сравнил server_name и стал обрабатывать этот
> запрос по правилам конфига example1 (т.к listen равноправные, приоритет
> отдается конфигу с правильынм server_name) Сервер отправляет свое Helo с
> открытым ключем, клиент его проверяет и если все ок - оба договариваются об
> алгоритмах шифрования и начинается обмен данными.
>
> Это если без особых подробностей.
> Для конфига example2 все тоже самое, только сервер запрашивает сертификат
> клиента и если его нет - 400 ошибка.
> В итоге у меня получается два сайта - первый работает без клиентских
> сертификатов, второй с ними..
>
и вся эта магия ломается если клиент не передал заголовок Host
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150303/33d0d12a/attachment.html>
Подробная информация о списке рассылки nginx-ru