Re: Запретить использовать SPDY
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
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
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
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
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
В письме от Вс, 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
Спасибо за предложение. Проблема не в том, что у меня нет второго адреса. Вопрос мой ведь в другом, можно ли обойтись иными способами? 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
<К.О.> Докупите второй 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
У меня есть сервер, у которого один адрес. 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
В письме от Вс, 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
Да, прекрасно. Вот только я не могу слушать отдельный сокет. 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
В письме от Вс, 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
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
Здравствуйте. Да, все равно так. Я хочу принудительно выключить 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
В письме от Вс, 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
Здравствуйте, 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
Здравствуйте. Это, конечно, немного странный вопрос, но можно ли принудительно запретить на каком-то домене использовать spdy? То есть, принудительно его выключить? К сожалению, убирание spdy из listen не спасает. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru