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

2015-01-21 Пенетрантность Gena Makhomed

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

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

2015-01-21 Пенетрантность Igor Sysoev
On 20 Jan 2015, at 14:28, Gena Makhomed  wrote:

> On 19.01.2015 14:42, Валентин Бартенев 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-соединению. Как его обработать не в рамках
SPDY-протокола? Закрыть stream? Вполне возможно, что браузер после этого
вообще перестанет работать с данным IP-адресом по SPDY.


-- 
Igor Sysoev
http://nginx.com

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-20 Пенетрантность Gena Makhomed

On 19.01.2015 14:42, Валентин Бартенев 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 для каждого из этих сайтов в отдельности.
То есть, теоретически - это сделать возможно.

Другой вопрос - что в этом нет какой-либо большой практической ценности,
- совершенно не понятно зачем может кому-либо понадобиться "Запретить
использовать SPDY". Тем более, что существует простой обходной вариант,
- купить/взять в аренду два IP, для spdy on и spdy off соответственно.

И даже если бы были какие-то веские причины, чтобы сделать spdy
параметром сервера, а не параметром listen сокета - это сделать
уже не получится, потому что тогда придется сломать обратную
совместимость. То есть, овчинка выделки наверное не стоит.

--
Best regards,
 Gena

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-19 Пенетрантность Валентин Бартенев
On Monday 19 January 2015 13:27:56 Gena Makhomed wrote:
> On 18.01.2015 18:50, Anton Kiryushkin wrote:
> 
> > Вопрос мой ведь в другом, можно ли обойтись иными способами?
> 
> теоретически - да, если научить nginx смотреть на имя сервера
> в SNI и на основании этого имени включать или выключать SPDY

nginx научить то можно, а клиентов кто при этом научит не ходить
на этот сервер по spdy?

С точки зрения протокола spdy, его анонс на каком-либо соединении
эквивалентен анонсу на всех виртуальных серверах с тем же портом,
чьи домены резолвятся в тот же ip, имеют тот же порт и для которых
валиден сертификат.  Это позволяет запрашивать эти хосты в том же,
уже открытом spdy-соединении, тем самым экономя хэндшейки - основной
смысл spdy.

Всё несколько сложнее, чем кажется.

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-19 Пенетрантность Gena Makhomed

On 18.01.2015 18:50, Anton Kiryushkin wrote:


Вопрос мой ведь в другом, можно ли обойтись иными способами?


теоретически - да, если научить nginx смотреть на имя сервера
в SNI и на основании этого имени включать или выключать SPDY

практически - нет, потому что такая feature обычно мало кому
интересна и нужна, раз такой патч так и не был предоставлен

--
Best regards,
 Gena

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Vadim A. Misbakh-Soloviov
В письме от Вс, 18 января 2015 20:50:30 пользователь Anton Kiryushkin написал:
> Спасибо за предложение. Проблема не в том, что у меня нет второго адреса.
> Вопрос мой ведь в другом, можно ли обойтись иными способами?

Можно: слушать на другом порту. Или вообще unix-сокет :)

// а ещё, не помню, как у NginX с SCTP. 

-- 
Best regards,
mva


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Anton Kiryushkin
Спасибо за предложение. Проблема не в том, что у меня нет второго адреса.
Вопрос мой ведь в другом, можно ли обойтись иными способами?

18 января 2015 г., 19:17 пользователь Oleg Motienko 
написал:

> <К.О.> Докупите второй IP ?
>
> 2015-01-18 18:56 GMT+03:00 Anton Kiryushkin :
> > У меня есть сервер, у которого один адрес. Nginx случает этот адрес на
> порту
> > 443. И обрабатывает два адреса, для который используется один сертификат.
> > Как, простите, тут можно использовать разные сокеты?
> > Я чего-то не понимаю может быть?
> >
>
> --
> Regards,
> Oleg
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Best regards,
Anton Kiryushkin
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Oleg Motienko
<К.О.> Докупите второй IP ?

2015-01-18 18:56 GMT+03:00 Anton Kiryushkin :
> У меня есть сервер, у которого один адрес. Nginx случает этот адрес на порту
> 443. И обрабатывает два адреса, для который используется один сертификат.
> Как, простите, тут можно использовать разные сокеты?
> Я чего-то не понимаю может быть?
>

-- 
Regards,
Oleg
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Anton Kiryushkin
У меня есть сервер, у которого один адрес. Nginx случает этот адрес на
порту 443. И обрабатывает два адреса, для который используется один
сертификат. Как, простите, тут можно использовать разные сокеты?
Я чего-то не понимаю может быть?

18 января 2015 г., 18:16 пользователь Vadim A. Misbakh-Soloviov <
m...@mva.name> написал:

> В письме от Вс, 18 января 2015 18:17:11 пользователь Anton Kiryushkin
> написал:
> > Да, прекрасно. Вот только я не могу слушать отдельный сокет.
>
> Почему?
>
>
> --
> Best regards,
> mva
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Best regards,
Anton Kiryushkin
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Vadim A. Misbakh-Soloviov
В письме от Вс, 18 января 2015 18:17:11 пользователь Anton Kiryushkin написал:
> Да, прекрасно. Вот только я не могу слушать отдельный сокет.

Почему?


-- 
Best regards,
mva


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Anton Kiryushkin
Да, прекрасно. Вот только я не могу слушать отдельный сокет.

18 января 2015 г., 15:49 пользователь Vadim A. Misbakh-Soloviov <
m...@mva.name> написал:

> В письме от Вс, 18 января 2015 14:44:33 пользователь Gena Makhomed написал:
>
> > spdy в nginx - это параметр сокета, а не виртуального сервера:
> > http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
>
>
> ... и отсюда следует что Вы, Anton Kiryushkin), впринципе, можете иметь
> spdy
> выключенным для конкретного server{} и включенным для остальных...
> Только данный server{} должен слушать отдельный от остальных сокет :)
>
>
> // раз уж начали прямыми подсказками сыпать, то можно и продолжить... :D
>
> --
> Best regards,
> mva
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Best regards,
Anton Kiryushkin
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Vadim A. Misbakh-Soloviov
В письме от Вс, 18 января 2015 14:44:33 пользователь Gena Makhomed написал:

> spdy в nginx - это параметр сокета, а не виртуального сервера:
> http://nginx.org/en/docs/http/ngx_http_core_module.html#listen


... и отсюда следует что Вы, Anton Kiryushkin), впринципе, можете иметь spdy 
выключенным для конкретного server{} и включенным для остальных...
Только данный server{} должен слушать отдельный от остальных сокет :)


// раз уж начали прямыми подсказками сыпать, то можно и продолжить... :D

-- 
Best regards,
mva


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Gena Makhomed

On 18.01.2015 13:52, Anton Kiryushkin wrote:


Я хочу принудительно выключить spdy для конкретного сервера.
Так как, по удивительным причинам, не указывание spdy в конфиге
не отменяет факта, что chrome берет и поднимает spdy соединение.
Ну фантастика. Но по конфигу работать не должно. Но работает.


spdy в nginx - это параметр сокета, а не виртуального сервера:
http://nginx.org/en/docs/http/ngx_http_core_module.html#listen

--
Best regards,
 Gena

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-18 Пенетрантность Anton Kiryushkin
Здравствуйте.

Да, все равно так. Я хочу принудительно выключить spdy для конкретного
сервера. Так как, по удивительным причинам, не указывание spdy в конфиге не
отменяет факта, что chrome берет и поднимает spdy соединение. Ну
фантастика. Но по конфигу работать не должно. Но работает.

18 января 2015 г., 8:42 пользователь Vadim A. Misbakh-Soloviov  написал:

> В письме от Вс, 18 января 2015 08:33:04 пользователь Михаил Монашёв
> написал:
> > Если  я  правильно  всё  пониманию, то spdy надо специально включать в
> > конфиге  nginx-а,  чтобы по нему начали ходить. Так что его выключение
> > состоит в не включении.
>
> Так ведь, на сколько я понял, товарищ хочет чтобы работало для всех
> server{}
> кроме одного. И жалуется, что недобавления spdy в listen в этом server{} не
> достаточно для того, чтобы SPDY в нём не работал.
>
> // надеюсь, телепатический шлем отработал без ошибок
>
> --
> Best regards,
> mva
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Best regards,
Anton Kiryushkin
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-17 Пенетрантность Vadim A. Misbakh-Soloviov
В письме от Вс, 18 января 2015 08:33:04 пользователь Михаил Монашёв написал:
> Если  я  правильно  всё  пониманию, то spdy надо специально включать в
> конфиге  nginx-а,  чтобы по нему начали ходить. Так что его выключение
> состоит в не включении.

Так ведь, на сколько я понял, товарищ хочет чтобы работало для всех server{} 
кроме одного. И жалуется, что недобавления spdy в listen в этом server{} не 
достаточно для того, чтобы SPDY в нём не работал.

// надеюсь, телепатический шлем отработал без ошибок

-- 
Best regards,
mva


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-17 Пенетрантность Михаил Монашёв
Здравствуйте, Anton.

> Это,  конечно,  немного  странный  вопрос, но можно ли принудительно
> запретить   на   каком-то   домене   использовать   spdy?  То  есть,
> принудительно его выключить? К сожалению, убирание spdy из listen не
> спасает.

Если  я  правильно  всё  пониманию, то spdy надо специально включать в
конфиге  nginx-а,  чтобы по нему начали ходить. Так что его выключение
состоит в не включении.

-- 
С уважением,
 Михаил  mailto:postmas...@softsearch.ru

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-01-17 Пенетрантность Anton Kiryushkin
Здравствуйте.

Это, конечно, немного странный вопрос, но можно ли принудительно запретить
на каком-то домене использовать spdy? То есть, принудительно его выключить?
К сожалению, убирание spdy из listen не спасает.

-- 
Best regards,
Anton Kiryushkin
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru