В течение нескольких дней я иногда сталкиваюсь со слишком длинным SSL-соединением при подключении к моему сайту.
Но я не могу понять причину этой проблемы.
Когда все в порядке,
openssl s_client -connect localhost:443
возвращает мне ответ менее чем за 50 миллисекунд. Но когда я сталкиваюсь с медленным подключением, эта команда возвращает мне ответ через 5-10 секунд.
Поэтому я решил контролировать свой веб-сервер с помощью нескольких показателей, таких как память, ЦП, количество открытых файлов Apache, http-сеансы, но ни один из них, похоже, не связан с проблемой.
Когда я просматриваю свой веб-сайт по протоколу HTTP вместо HTTPS, у меня нет проблем.
На панели безопасности инструментов разработчика Chrome он сообщает мне, что сертификат действителен.
Не могли бы вы помочь мне найти причину проблемы?
Обновление №1:
Вот мой /etc/apache2/mods-enabled/ssl.conf:
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
И cat /proc/sys/kernel/random/entropy_avail
возвращает мне около 800.
Если задержка действительно связана с согласованием сеанса SSL, вы можете проверить, если SSLRandomSeed
директива указывает на /dev/random
. / dev / random достаточно безопасен, но он также блокирует, когда ваша система имеет недостаточную энтропию (проверьте с помощью cat /proc/sys/kernel/random/entropy_avail
).
Изменение SSLRandomSeed
использовать /dev/urandom
(который никогда не блокируется) обычно является решением этой проблемы.