Gena Makhomed
January 21, 2015 10:36AM
On 21.01.2015 16:17, Igor Sysoev wrote:

>>>>> Вопрос мой ведь в другом, можно ли обойтись иными способами?
>>>>
>>>> теоретически - да, если научить nginx смотреть на имя сервера
>>>> в SNI и на основании этого имени включать или выключать SPDY
>>>
>>> nginx научить то можно, а клиентов кто при этом научит не ходить
>>> на этот сервер по spdy?
>>>
>>> С точки зрения протокола spdy, его анонс на каком-либо соединении
>>> эквивалентен анонсу на всех виртуальных серверах с тем же портом,
>>> чьи домены резолвятся в тот же ip, имеют тот же порт и для которых
>>> валиден сертификат. Это позволяет запрашивать эти хосты в том же,
>>> уже открытом spdy-соединении, тем самым экономя хэндшейки - основной
>>> смысл spdy.
>>>
>>> Всё несколько сложнее, чем кажется.
>>
>> Раньше было необходимо для каждого HTTPS сайта покупать отдельный IP.
>>
>> Сейчас - поддержка SNI появилась уже практически во всех серверах
>> и клиентах. Кроме того изменились ситуация с поисковыми машинами
>> и появилась возможность получить бесплатный SSL сертификат:
>>
>> http://googlewebmastercentral.blogspot.com/2014/08/https-as-ranking-signal.html
>>
>> https://letsencrypt.org/
>>
>> https://www.cloudflare.com/ssl
>>
>> Поэтому в ближайшее время можно ожидать массовое использование SNI
>> для HTTPS сайтов, в результате на одном и том же listen сокете IP:PORT
>> будут десятки а то и сотни разных HTTPS-сайтов с разными сертификатами.
>>
>> Соответственно - можно будет управлять включением/выключением поддержки
>> протокола SPDY для каждого из этих сайтов в отдельности.
>> То есть, теоретически - это сделать возможно.
>
> Теоретичкески - невозможно.
> Есть два сервера на одном listen сокете. Один со SPDY, второй - нет.
> Пользователь запросил первый сервер. Браузер установил SPDY-соединение к
> первому. Потом пользователь запросил второй сервер. Браузер пошлёт этот
> запрос по этому же самому SPDY-соединению.

Браузер пошлет этот запрос только в том случае,
если сертификат первого сервера будет валидным для второго сервера.

У первого сервера сертификат на имя www.example.com
а у второго - сертификат на имя www.example.net

Разве в этой ситуации браузер пришлет запрос на сервер www.example.net
используя установленное подключение с сертификатом www.example.com?

> Как его обработать не в рамках
> SPDY-протокола? Закрыть stream? Вполне возможно, что браузер после этого
> вообще перестанет работать с данным IP-адресом по SPDY.

Да, если сертификат окажется валидным и для первого и для второго имени,
тогда раздельно включать/выключать протокол SPDY для них не получится.

В такой ситуации nginx может выдать пользователю warning о том,
что не смотря на отсутствие параметра spdy в директиве listen,
протокол SPDY всеравно будет включен для этого сервера.

Если клиент в SNI прислал одно имя сервера, а фактически
пытается делать запросы к другому имени сервера,
это будет выглядеть как попытка взлома.

А в RFC https://tools.ietf.org/html/rfc6066#section-3
написано что клиент SHOULD NOT так делать.

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Запретить использовать SPDY

Anton Kiryushkin January 17, 2015 06:34PM

Re: Запретить использовать SPDY

Михаил Монашёв January 18, 2015 12:34AM

Re: Запретить использовать SPDY

mva January 18, 2015 12:44AM

Re: Запретить использовать SPDY

Anton Kiryushkin January 18, 2015 06:54AM

Re: Запретить использовать SPDY

Gena Makhomed January 18, 2015 07:46AM

Re: Запретить использовать SPDY

mva January 18, 2015 07:52AM

Re: Запретить использовать SPDY

Anton Kiryushkin January 18, 2015 09:18AM

Re: Запретить использовать SPDY

mva January 18, 2015 10:18AM

Re: Запретить использовать SPDY

Anton Kiryushkin January 18, 2015 10:58AM

Re: Запретить использовать SPDY

Oleg Motienko January 18, 2015 11:18AM

Re: Запретить использовать SPDY

Anton Kiryushkin January 18, 2015 11:52AM

Re: Запретить использовать SPDY

mva January 18, 2015 04:18PM

Re: Запретить использовать SPDY

Gena Makhomed January 19, 2015 06:30AM

Re: Запретить использовать SPDY

Валентин Бартенев January 19, 2015 07:44AM

Re: Запретить использовать SPDY

Gena Makhomed January 20, 2015 06:30AM

Re: Запретить использовать SPDY

Igor Sysoev January 21, 2015 09:20AM

Re: Запретить использовать SPDY

Gena Makhomed January 21, 2015 10:36AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 108
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready