Что именно делает ssl_stapling_verify
директива? Проверяет ли он правильность подписи ответа? Официальная документация nginx очень расплывчато объясняет это:
https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling_verify
Включает или отключает проверку ответов OCSP сервером.
Чтобы проверка работала, сертификат поставщика сертификатов сервера, корневой сертификат и все промежуточные сертификаты должны быть настроены как доверенные с помощью директивы ssl_trusted_certificate.
Я нашел в исходном коде Nginx. файл ngx_event_openssl_stapling.c # L660:
OCSP_basic_verify(basic, chain, store,staple->verify ? OCSP_TRUSTOTHER :OCSP_NOVERIFY
if you config `ssl_stapling_verify` value is on, then `staple->verify` will true, next the function `OCSP_basic_verify` will use `OCSP_TRUSTOTHER ` param to verified. затем я нашел OCSP_basic_verify функционировать в openssl
libaray, он сказал:
Тогда функция уже возвращает успех, если флаги содержат OCSP_NOVERIFY или если подписывающий сертификат был найден в сертификатах, а флаги содержат OCSP_TRUSTOTHER.
больше о здесь: https://meto.cc/article/what-exactly-did-ssl_stapling_verify-verify
Википедия говорит, "Сшивание OCSP, формально известное как расширение запроса статуса сертификата TLS, представляет собой альтернативный подход к протоколу онлайн-статуса сертификата (OCSP) для проверки статуса отзыва цифровых сертификатов X.509. Он позволяет предъявителю сертификата нести стоимость ресурсов, связанных с предоставлением ответов OCSP добавление ("сшивание") ответа OCSP с отметкой времени, подписанного ЦС, к первоначальному рукопожатию TLS, устраняя необходимость для клиентов связываться с ЦС".
Акцент добавлен.
Директива включает или выключает этот «альтернативный подход» сшивания OCSP. По умолчанию сшивание OCSP не включено. Вы можете включить его, используя
ssl_stapling_verify on;