ssl_stapling without ssl_trusted_certificate
Maxim Dounin
mdounin на mdounin.ru
Пн Апр 1 12:54:52 UTC 2019
Hello!
On Sun, Mar 31, 2019 at 09:10:15PM +0300, sergio wrote:
> Вот тут
> https://nginx.org/en/docs/http/ngx_http_ssl_module.html
> написано:
>
> For the OCSP stapling to work, the certificate of the server certificate
> issuer should be known. If the ssl_certificate file does not contain
> intermediate certificates, the certificate of the server certificate
> issuer should be present in the ssl_trusted_certificate file.
>
> For a resolution of the OCSP responder hostname, the resolver directive
> should also be specified.
>
> И ещё:
>
> For verification to work, the certificate of the server certificate
> issuer, the root certificate, and all intermediate certificates should
> be configured as trusted using the ssl_trusted_certificate directive.
>
> По-этому я взял и сделал всё ровно наоборот: не стал указывать ни
> resolver ни ssl_trusted_certificate. Включил только лишь:
> ssl_stapling on;
> ssl_stapling_verify on;
> И мои сертификаты не содержат цепочки доверия, только лишь сам сертификат.
>
> 1. Почему ocsp работает и это не отражено в документации?
> (я вижу OCSP Response Data в openssl s_client -connect hostname:443
> -tls1_2 -tlsextdebug -status)
Если issuer'а нет ни в цепочке сертификатов в ssl_certificate, ни
в доверенных сертификатах ssl_trusted_certificate (либо
ssl_client_certificate, см. описания соответствующих директив), то
OCSP stapling будет работать только при явном задании OCSP-ответа
с помощью директивы ssl_stapling_file.
Если же директива ssl_stapling_file не используется, и issuer
certificate найти не получилось - на старте nginx ругнётся в лог
на уровне warn словами "issuer certificate not found" и отключит
stapling.
> 2. Как вычисляются значения resolver и ssl_trusted_certificate, когда
> они не указаны?
Никак, с точностью до того, что если соответствующие директивы
таки указаны на предыдущих уровнях - то будут, естветственно,
использоватся значения, заданные на предыдущих уровнях.
В случае, если resolver не указан, и при этом включён OCSP
stapling - nginx будет пытаться использовать IP-адреса
OCSP-сервера, полученные при старте,
при каждом обращении к OCSP-серверу ругаясь в логи про "no
resolver defined to resolve ..." на уровне warn.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru