blog.cat.ssl

OCSP stapling — повышение скорости SSL и руководство по конфигурации сервера

18.09.2035
← Все статьи

Процесс проверки достоверности SSL/TLS сертификата добавляет заметное время в первые секунды открытия сайта. При каждом HTTPS соединении браузер запрашивает у органа выдавшего сертификат (CA) действителен ли сертификат и не отозван ли он. Этот запрос называется OCSP (Online Certificate Status Protocol) и в среднем приводит к задержке 100-300 миллисекунд. OCSP stapling — отличная технология которая сводит эту задержку практически к нулю. Давайте рассмотрим её подробно.

Что такое OCSP и как он работает

После получения сертификата браузер отправляет запрос на адрес OCSP responder указанный в сертификате: "этот сертификат ещё действителен или отозван?". Сервер CA возвращает ответ и браузер если сертификат действителен продолжает соединение. Этот процесс повторяется для каждого браузера и каждого соединения, что создаёт огромную нагрузку на OCSP сервер и значительно замедляет работу пользователя.

Принцип OCSP stapling

В OCSP stapling не браузер, а сам сервер заранее получает OCSP ответ от CA и передаёт его браузеру "stapled" вместе с сертификатом. Сервер обновляет и кэширует этот ответ обычно каждые 1-2 часа. В результате браузер больше не отправляет отдельный OCSP запрос — вся нужная информация приходит сразу в процессе SSL handshake. Это экономит 100-300 мс.

Настройка OCSP stapling в Nginx

Для настройки в Nginx добавьте в блок server следующие директивы: ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/fullchain.pem; resolver 8.8.8.8 8.8.4.4 valid=300s. Здесь ssl_trusted_certificate — файл с intermediate и root сертификатами, resolver используется для DNS запросов (Nginx находит адрес OCSP сервера через DNS). После настройки проверьте через nginx -t и перезагрузите.

Настройка OCSP stapling в Apache

В Apache используются директивы SSLUseStapling On, SSLStaplingCache "shmcb:/var/run/ocsp(128000)", SSLStaplingResponseMaxAge 86400 и SSLStaplingStandardCacheTimeout 3600. SSLStaplingCache должен быть в глобальной конфигурации, остальные — внутри virtual host. Для проверки правильности настройки используйте команду openssl s_client -connect domain.uz:443 -status и увидите запись OCSP Response Status: successful.

Польза скорости и мониторинг

После включения OCSP stapling время SSL handshake сокращается на 25-40%, что даёт ускорение загрузки сайта на 200-500 мс. На мобильном интернете эта разница ещё заметнее — можно сэкономить до 800 мс. Для мониторинга состояния stapling можно использовать тест SSL Labs или ssl-cert-check.net. Неработающий stapling замедляет скорость сертификата но не влияет на безопасность.

Практика Sayt.uz

91% клиентов Sayt.uz пользуется сайтами с включённым OCSP stapling. На наших серверах stapling включён по умолчанию, дополнительная настройка не нужна. В результате stapling скорость загрузки сайта ускоряется в среднем на 340 мс. На независимых VPS услуга настройки 50 000 сум разово, ежемесячный мониторинг 25 000 сум. Среднее время SSL handshake наших клиентов 180 мс, среднее по индустрии 420 мс.

Похожие статьи

📱 SSL pinning: самая надежная защита мобильных приложений от MITM-атак 🤝 Процесс SSL handshake: внутренняя механика TLS-рукопожатия по этапам 🔓 Пропал зеленый замок HTTPS: причины и пошаговое исправление Мониторинг срока действия SSL: системы оповещений и автоматические проверки
🌐 Язык
🇺🇿 O'zbek 🇺🇿 Ўзбек 🇷🇺 Русский 🇬🇧 English