Доброе утро! Ситуация следующая:
Имеем: в основном конфигурационном сайте - nginx.conf включен OCSP следующими параметрами:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
В виртуальном хосте дополнительно прописан stapling_file:
ssl_stapling_file ...l/ocsp.der;
Который не работает. Т.е. если создать искуственно долгий (или превышающий лимит) ответ от resolver-а, и проверять работу OCSP например командой
openssl s_client -connect example.com:443 -status 2> /dev/null | grep -A 17 'OCSP response:' | grep -B 17 'Next Update'
,то он отрабатывает через раз (или реже, в зависимости от условий). Сначала было подозрение на http2/round robin, но их отключение результата не дало. При переносе ssl_stapling_file в основной конфигурационный файл, все заработало - OCSP отрабатывает каждый раз, даже если поставить заведомо нерабочий resolver. Дальше, путем эксперимента было установлено, что такое поведение у многих параметров ssl_. Является ли это нормой, что эти параметры работают только в основном конфигурационном файле? А если нужны разные ssl_stapling_file для хостов?
Немного оффтопа:
При генерации ocsp файла командой
openssl ocsp -issuer sca.server2.crt -cert example.com.crt -url http://ocsp.startssl.com -header "Host" "ocsp.startssl.com" -respout ocsp.der -resp_text
(сертификаты StartSSL), и последующей проверке >любого< сертификата этого CA, ocsp.der выдает good (нет возможности проверить отозванный). Разве он не должен записать статус только example.com.crt? Вес файла ~2кб.
Заранее спасибо!