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