Skip to content
EN

Как включить OCSP Stapling

Коротко:

OCSP Stapling — сервер сам периодически получает OCSP-ответ от CA и "прикрепляет" к TLS handshake. Без stapling каждый клиент делает свой OCSP-запрос → +100-300ms + утечка URL в CA. Настройка в nginx: 3 директивы + resolver. Pro + secure by default.

Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.

Проверить SSL своего сайта →

Пошаговая настройка

  1. Получите chain.pem от CA (для Let's Encrypt — в /etc/letsencrypt/live/example.com/)
  2. В server block nginx добавьте: ssl_stapling on; ssl_stapling_verify on;
  3. Укажите trusted certificate: ssl_trusted_certificate /path/to/chain.pem;
  4. Добавьте resolver (DNS для запросов к OCSP): resolver 1.1.1.1 8.8.8.8 valid=60s;
  5. nginx -t && systemctl reload nginx
  6. Проверьте: openssl s_client -connect example.com:443 -status < /dev/null 2>&1 | grep -A2 "OCSP Response"
  7. Enterno SSL покажет OCSP Stapling как "Enabled"

Рабочие примеры

СценарийКонфиг
nginx minimal configserver { listen 443 ssl; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; resolver 1.1.1.1 valid=60s; }
ApacheSSLUseStapling On\nSSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Проверка успехаopenssl s_client -connect example.com:443 -status | grep "OCSP Response Status"
Must-Staple (enforce)certbot certonly --must-staple -d example.com # cert имеет must-staple extension

Типичные ошибки

  • Забыть resolver — nginx не сможет резолвить OCSP host → stapling не работает
  • chain.pem содержит только server cert (без intermediate) — validation fails
  • Слишком агрессивный resolver timeout — stapling иногда выключается
  • Must-Staple cert + OCSP down — клиент не сможет подключиться (harsh, но secure)
  • На первом запросе nginx делает fresh OCSP fetch — 1-2 слабых клиентов могут увидеть задержку

TL;DR

OCSP Stapling в nginx настраивается с помощью добавления нескольких строк кода в конфигурационный файл сервера. Для этого нужно использовать директиву ssl_stapling, а также указать путь к файлу с сертификатом OCSP. Пример конфигурации: ssl_stapling on; и ssl_stapling_verify on;. Не забудьте перезагрузить nginx после изменений.

Что такое OCSP Stapling и его преимущества

OCSP (Online Certificate Status Protocol) Stapling — это метод проверки статуса сертификатов, который позволяет веб-серверу предоставлять информацию о действительности сертификата напрямую клиенту. Это снижает нагрузку на серверы OCSP и улучшает время отклика. Основные преимущества OCSP Stapling:

  • Улучшение производительности: Клиенты не должны отдельно запрашивать статус сертификата, что сокращает время загрузки страниц.
  • Повышение конфиденциальности: Клиенты не отправляют запросы на серверы OCSP, что уменьшает количество отслеживаемой информации.
  • Устойчивость к атакам: Даже если сервер OCSP недоступен, ваш сайт будет работать, если статус сертификата будет «действителен».

Таким образом, настройка OCSP Stapling в nginx является важным шагом для повышения безопасности и производительности вашего веб-приложения.

Практическое руководство по настройке OCSP Stapling в nginx

Для настройки OCSP Stapling в nginx выполните следующие шаги:

  1. Убедитесь, что у вас установлен SSL-сертификат. Если сертификат не установлен, вы можете воспользоваться бесплатными сертификатами от Let's Encrypt или другими провайдерами.
  2. Откройте конфигурационный файл nginx. Обычно он находится по пути /etc/nginx/nginx.conf или в директории /etc/nginx/sites-available/.
  3. Добавьте следующие строки в ваш серверный блок:
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    location / {
        # Ваша конфигурация
    }
}

Объяснение параметров:

  • ssl_stapling on; — включает OCSP Stapling.
  • ssl_stapling_verify on; — включает проверку статуса сертификата.
  • resolver — указывает DNS-серверы для разрешения адресов OCSP-серверов.

4. Проверьте конфигурацию на наличие ошибок: Используйте команду nginx -t для проверки конфигурации.

5. Перезагрузите nginx: После внесения изменений выполните команду systemctl reload nginx.

Теперь ваш сервер настроен на использование OCSP Stapling. Вы можете проверить, работает ли он корректно, используя инструменты, такие как SSL Labs или openssl s_client -connect example.com:443 -status.

TL;DR

OCSP Stapling в nginx настраивается с помощью добавления директивы ssl_stapling on; и указания пути к файлу с сертификатом. Это позволяет сократить время проверки статуса сертификата, улучшая производительность и безопасность вашего сайта. Убедитесь, что у вас установлены необходимые модули и настроены DNS-записи для корректной работы.

Технические детали настройки OCSP Stapling

Настройка OCSP Stapling в nginx требует внимательного подхода, так как это влияет на безопасность и производительность вашего веб-сервера. OCSP (Online Certificate Status Protocol) позволяет клиентам проверять статус сертификатов в реальном времени, а Stapling добавляет дополнительный уровень эффективности, позволяя серверам кэшировать ответы от OCSP-серверов.

Для начала убедитесь, что у вас установлен и настроен nginx с поддержкой SSL. Для этого выполните команду:

nginx -V

Ищите --with-http_ssl_module в выводе. Если модуль не установлен, вам нужно будет переустановить nginx с поддержкой SSL.

Теперь перейдем к настройке OCSP Stapling. Откройте конфигурационный файл вашего сайта, обычно это /etc/nginx/sites-available/your_site. Добавьте или измените следующие директивы в блоке server:

ssl on;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
ssl_trusted_certificate /path/to/your/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

Здесь:

  • ssl_certificate — путь к вашему SSL-сертификату.
  • ssl_certificate_key — путь к закрытому ключу.
  • ssl_trusted_certificate — путь к промежуточному сертификату (chain file).

После этих изменений, вам нужно проверить, правильно ли настроен OCSP Stapling. Для этого используйте команду:

openssl s_client -connect your_domain.com:443 -status

В выводе вы должны увидеть секцию OCSP Response, которая будет свидетельствовать о том, что OCSP Stapling работает корректно. Если вы видите сообщение об ошибке, проверьте конфигурацию и убедитесь, что ваш сервер может обратиться к OCSP-серверу вашего удостоверяющего центра.

Не забудьте перезапустить nginx, чтобы применить изменения:

sudo systemctl restart nginx

После перезапуска рекомендуется снова проверить статус с помощью openssl. Если все настроено правильно, вы получите подтверждение, что ваш сертификат действителен и OCSP Stapling работает.

Также стоит отметить, что в некоторых случаях может потребоваться добавить дополнительные настройки DNS, чтобы разрешить запросы к OCSP-серверу. Убедитесь, что ваш сервер может выполнять DNS-запросы и имеет доступ к интернету для проверки статуса сертификата.

Помимо этого, рекомендуется настроить мониторинг состояния вашего OCSP Stapling. Это можно сделать с помощью различных инструментов, которые отслеживают время отклика и доступность OCSP-серверов, чтобы быть уверенным в стабильной работе вашего веб-сервера.

СертификатСрок, издатель, домены (SAN)
ЦепочкаПроверка промежуточных и корневых CA
TLS-протоколВерсия TLS и набор шифров
УязвимостиHeartbleed, POODLE, слабые шифры

Почему нам доверяют

TLS 1.3
поддержка
Полная
цепочка CA
<2с
результат
30/14/7
дней до истечения

Как это работает

1

Введите домен

2

Проверка цепочки TLS

3

Дата истечения и уязвимости

Что проверяет SSL-тест?

SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.

Детали сертификата

Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

Цепочка доверия

Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

Анализ TLS

Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

Оповещения об истечении

Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

DV vs OV vs EV сертификаты

DV (Domain Validation)
  • Подтверждение только владения доменом
  • Выдаётся за минуты автоматически
  • Бесплатно через Let's Encrypt
  • Подходит для большинства сайтов
  • Самый распространённый тип
OV / EV
  • Проверка организации (OV) или расширенная проверка (EV)
  • Выдаётся за 1-5 рабочих дней
  • Стоимость от $50 до $500/год
  • Для финансов, e-commerce, госсайтов
  • Повышает доверие пользователей

Кому это нужно

DevOps

мониторинг SSL-сертификатов

Безопасность

аудит TLS-конфигурации

SEO

HTTPS как фактор ранжирования

E-commerce

доверие покупателей

Частые ошибки

Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

Лучшие практики

Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

Получите больше с бесплатным аккаунтом

Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Обязательно ли OCSP Stapling?

Нет технически, но Qualys SSL Labs снижает grade на A-. Mozilla рекомендует. Browsers с Must-Staple cert требуют.

Сколько часто nginx запрашивает OCSP?

nginx кэширует response на несколько часов (не настраивается напрямую, зависит от cache control в OCSP response).

Let's Encrypt поддерживает OCSP?

Да, полностью. Their OCSP responder ocsp.int-x3.letsencrypt.org 24/7.

Как проверить что stapling работает?

<a href="/ssl">Enterno SSL</a> → секция TLS → "OCSP Stapling: Active" + <code>openssl s_client -status</code>.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.