Nginx + Android + ssl = 400

Gena Makhomed gmm at csdoc.com
Tue Mar 3 19:55:01 UTC 2015


On 03.03.2015 19:30, ingtar wrote:

> Клиент устанавливает с сайтом example1 соединение. Запрос с хэдером этого
> сайта приходит на сервер, обслуживающий указанный ИП адрес (Client Helo).
> Nginx принял запрос, по хедеру сравнил server_name и стал обрабатывать этот
> запрос по правилам конфига example1 (т.к listen равноправные, приоритет
> отдается конфигу с правильынм server_name) Сервер отправляет свое Helo с
> открытым ключем, клиент его проверяет и если все ок - оба договариваются об
> алгоритмах шифрования и начинается обмен данными.

listen не равноправные. один из них - default_server. Подробнее:
http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen

Выбор HTTPS-сервера для обработки происходит не по заголовку Host:
http://nginx.org/en/docs/http/configuring_https_servers.html
http://nginx.org/ru/docs/http/configuring_https_servers.html

> Если я вас достал глупыми вопросами - извините, я хочу разобраться в
> проблеме.

http://mailman.nginx.org/pipermail/nginx-ru/2015-March/055479.html

> По поводу своего первоначального вопроса - выставили конфиг первым в списке,
> что неправильно, но работает :)

Скорее всего, HTTP-клиент на андроиде не умеет TLS SNI
и поэтому его запросы всегда попадают в default_server.

-- 
Best regards,
  Gena



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