Re: Количество клиенстких ошибок выросло после обновления до новой nginx(1.14.2) c новым openssl (1.0.2g)

Илья Шипицин chipitsine на gmail.com
Вс Апр 7 13:15:56 UTC 2019


On Sun, Apr 7, 2019, 5:45 PM Dmitry Sergeev <identw на gmail.com> wrote:

> Количество ошибок на уровне HTTP - может быть нерелевантно
> происходящему, и, скажем, означать, что больше проблемных клиентов
> теперь могут пройти через SSL handshake.
>
> Ну и смотреть надо не на абсолютные цифры, а на проценты от
> трафика.  Если речь про доли процента - наблюдаемое изменение
> может быть следствием того, что проблемы возникают у каких-либо
> малораспространённых клинтов, и совершенно не факт, что на это
> надо обращать внимание.  Например, из OpenSSL 1.0.2 могли убрать
> какие-то workaround'ы для ошибочного поведения, или же из-за
> изменения списка шифров теперь используются другие шифры, которые,
> наоборот, вызывают проблемы в этих клиентах.
>
> Ну не знаю, количество ошибок, которое возросло в 3-4 раза, как по мне
> стоит того, чтобы обратить внимание. Доля трафика конечно небольшая, я
> думаю примерно в пределах одного процента, а точнее:  0.24% запросов это
> ошибки (499,408,400). Но обычно эта доля составляет 0.05%, что и
>

А каких-нибудь мобильных клиентов на okhttp старых версий (у них очень
плохо с http2) нет?


расстраивает. Надо конечно это считать не по количеству запросов, а по
> количеству пользователей, которых это затрагивает, но все же.
>
> Если же хочется таки разобраться - то имеет смысл смотреть
> подробную информацию по ошибкам, в частности - что при этом пишет
> nginx в логи (если есть подробности - они скорее всего на уровне
> info), и что известно про этих клиентов - User-Agent, используемые
> протоколы, шифры и так далее.
>
> Да, спасибо. Буду исследовать дальше.
>
> В первую очередь - в OpenSSL 1.0.1 нет ALPN, то есть HTTP/2 в
> современных браузерах работать не будет.  Если в конфиге включён
> HTTP/2 - переход на OpenSSL 1.0.2 будет сильным изменением
> поведения в любом случае.  Так что имеет смысл HTTP/2 выключить и
> сравнивать строго без HTTP/2.  Важно при этом выключить везде,
> потому как http2 - это опция сокета, и если она останется в любом
> из блоков server, то HTTP/2 продолжит работать.
>
> Тестил как с http2 так и без него, результат один и тот же. Про то что
> отключать его нужно во всех блоках server знаю, после выключения
> непосредственно проверял вручную, выключился ли он действительно.
>
> Если вдруг используются множественные сертификаты в одном блоке
> server - переход с OpenSSL 1.0.1 на 1.0.2 потребует изменения
> цепочек в ssl_certificate, т.к. в случае OpenSSL 1.0.1 цепочка
> только одна и общаяя для всех сертификатов, а в случае 1.0.2 - у
> каждого сертификата своя.
>
> Я к сожалению не очень разбираюсь в этом, я использую wildcard сертификаты
> от letsencrypt. То что сгенирировал certbot то и даю nginx. Как писал
> раннее, тестил версии openssl: 1.0.1u, 1.0.2g, 1.1.1b. Данная проблема
> воспроизводится успешно на 1.0.2g и 1.1.1b.
>
> Спасибо за наводки, понял, что проблема скорее всего на клиентской стороне
> с поддержкой алгоритмов ssl или еще какие-то, буду исследовать дальше.
>
>
> --
>
> Kind regards
> Dmitry Sergeev
> Tel: +7 (951) 129-75-72
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20190407/544c0bef/attachment-0001.html>


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