Обработка ssl_stapling при недоступности ocsp-респондера

Eugene Peregudov eugene.peregudov at gmail.com
Tue Jun 9 08:13:32 UTC 2015


Добрый день!

Установлен nginx-frontend, терминирующий ssl\tls с настроенным ssl_stapling:

# SSL secure session
ssl_session_timeout  5m;
ssl_session_cache    shared:SSL:50m;

# SSL cipher suite settings
ssl_ciphers
'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/pki/tls/private/dhparam.pem;

# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/pki/tls/private/trust-ca-chain-globalsign.pem;
resolver x.x.x.x;

Недавно словил глюк (или особенность) работы ssl_stapling.

В вышеописанной конфигурации nginx должен самостоятельно опрашивать
ocsp-респондер УЦ (в частности у меня OCSP - URI:
http://ocsp2.globalsign.com/gsorganizationvalsha2g2) и прикреплять
ocsp-ответы к tls-сессии (чтобы клиент не тратил время на самостоятельное
обращение к ocsp-респондеру).

Однако, при длительной недоступности связи с ocsp-ренспондером некоторые
внутренние клиенты с браузеров Firefox (и только c них) ловят ошибку
"OCSP-ответ содержит устаревшую информацию. (Код ошибки:
sec_error_ocsp_old_response)", что наводит на мысль о том, что возможно
nginx отдает клиентам устаревший ocsp-ответ (последний сохраненный на
момент доступности ocsp-респондера УЦ). Если nginx перезапустить, то в
свежеустановленной tls-сессии ocsp-ответ уже не прикрепляется (OCSP
response: no response sent) и Firefox ресурс успешно открывает.

Очевидным решением является конечно же отключение проверки ocsp по
умолчанию в настройках FF.
Однако хотелось бы уточнить из первых рук:
- кеширует ли nginx ocsp-ответы?
- если кеширует, то должен ли просто отдавать последний сохраненный у себя
ocsp-ответ или все же проверять время и не посылать протухший ocsp-ответ?

Версия mainline из официального репозитория:
nginx version: nginx/1.9.1
built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled

-- 
------------------------------------
With best regards, Eugene Peregudov
Mailto: eugene.peregudov at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150609/24668ea6/attachment.html>


Подробная информация о списке рассылки nginx-ru