SSL lags

Maxim Dounin mdounin на mdounin.ru
Ср Ноя 28 17:06:52 UTC 2018


Hello!

On Wed, Nov 28, 2018 at 06:20:12PM +0200, Vladimir Getmanshchuk wrote:

> Странная ситуация с SSL - жуткий лаг на отдаче:
> 
> 
> # curl -w "time_connect: %{time_connect}\ntime_total: %{time_total}\n" -X
> GET -s -q http://1.1.1.1/google663dfea033864f54.html -o /dev/null
> 
> time_connect: 0.000
> 
> time_total: 0.001
> 
> 
> # curl -w "time_connect: %{time_connect}\ntime_total: %{time_total}\n" -X
> GET -s -q https://1.1.1.1/google663dfea033864f54.html --insecure -o
> /dev/null
> 
> time_connect: 0.000
> 
> time_total: *0.106*

В SSL есть операция SSL handshake, и в зависимости от используемых 
шифров и сертификатов - она может занимать как просто много 
времени, так и очень много времени.  (Ну и поскольку curl между 
запусками не может сохранять ранее установленную сессию - каждый 
запуск будет требовать полного handshake'а.)

В частности, если вдруг используется обмен ключами с помощью 
алгоритма Диффи-Хеллмана - будет тормозить.  Особенно если задать 
параметры где-нибудь на 4096 бит.  Смотрите внимательно, что 
именно за шифры у вас используются, и если DHE - то что именно у 
вас лежит в ssl_dhparam.  Ну или просто уберите ssl_dhparam из 
конфига - по умолчанию nginx просто не будет использовать DHE.

Кроме того, будет тормозить, если используются RSA-сертификаты 
больше 2048 бит.  Смотрите, что за сертификат используется.  
RSA-сертификаты на 4096 бит - зачастую по умолчанию прилетают из 
модных и молодёжных инструментов получения сертификатов от 
LetsEncrypt, но малопригодны для работы web-сервера.

-- 
Maxim Dounin
http://mdounin.ru/


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