OCSP stapling in Nginx >=1.3.7

Gena Makhomed gmm на csdoc.com
Вт Сен 11 08:10:09 UTC 2018


On 11.09.2018 6:21, Maxim Dounin wrote:

>>> Кроме того, в некоторых случаях для проверки может хватить
>>> сертификатов, уже присутствующих в цепочке сертификата (по идее
>>> должно хватать issuer cert, которые есть в цепочке почти всегда,
>>> но, к сожалению, соответствующие функции в OpenSSL, cкажем так,
>>> оставляют желать - и это, собственно, основная причина, почему
>>> ssl_stapling_verify не используется по умолчанию).
>>
>> Но ведь SSL сертификаты - это обычные текстовые файлы.
>> Например, если для сайта example.com сравнить два файла
>>
>> /etc/letsencrypt/live/example.com/fullchain.pem
>> /etc/letsencrypt/live/example.com/chain.pem
>>
>> то видно что файл chain.pem равен файлу fullchain.pem
>> плюс дополнительный сертификат сайта на самом верху.
>>
>> Можно ли сделать для директивы ssl_trusted_certificate параметр auto
>> который будет означать автоматическое получение файла chain.pem путем
>> вырезания самого первого сертификата из файла fullchain.pem?
>>
>> В таком случае можно было бы сделать значением по-умолчанию
>> ssl_trusted_certificate auto; и ssl_stapling_verify on;
>> И веб-сервер nginx тогда будет "Secure by default".
>>
>> Хотя, проверка клиентских сертификатов и проверка ответов OCSP
>> - это две совсем разные задачи, странно что для них используется
>> в nginx одна и та же директива ssl_trusted_certificate.
>>
>> Не лучше ли было бы для этих двух разных задач
>> иметь и две разные директивы?

> Лучше всего - сделать так, чтобы OpenSSL научился проверять
> OCSP-ответы не полной цепочкой сертификатов вплоть до доверенного
> root'а, а ровно так, как и должно быть по стандарту - с помощью
> одного только сертификата issuer'а.  Тогда проблема исчезнет.

А разработчики OpenSSL разве знают об этой проблеме?
На гитхабе https://github.com/openssl/openssl/issues
я не нашел issue в которой бы описывалась эта проблема.

Но даже если вдруг новые версии OpenSSL научатся проверять OCSP-ответы
с помощью одного только сертификата issuer'а - проблема не исчезнет.

Потому что останется огромное количество операционных систем,
в которых будет установлена старая версия OpenSSL, например,
CentOS/RHEL. Новые версии этой системы выходят очень редко.

И потребуется как минимум 5-10 лет, прежде чем новые версии
OpenSSL вытеснят старые версии OpenSSL из всех дистрибутивов.

> Пытаться же изобретать костыли, чтобы решить проблему кривых
> интерфейсов OpenSSL - это бессмысленная деятельность, на выходе
> которой ничего кроме костылей получиться не может.  Просто по
> определению.

Кроме OpenSSL есть и другие библиотеки, например, BoringSSL
- там эта проблема тоже присутствует, насколько я понимаю?
И разработчики BoringSSL тоже ничего не знают об этом?

-- 
Best regards,
  Gena



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