Как построить цепочку сертификатов OCSP для сертификатов RSA + ECC с двумя стеками

Nginx позволяет нам использовать несколько сертификатов, чтобы мы могли использовать как сертификаты ECC, так и RSA.

ssl_certificate /etc/ssl/example.com.combined.crt;
ssl_certificate_key /etc/ssl/example.com.key;
ssl_certificate /etc/ssl/example.com-ecc.combined.crt;
ssl_certificate_key /etc/ssl/example.com-ecc.key;

Однако он позволяет нам указать только один доверенный сертификат для сшивания OCSP:

ssl_trusted_certificate /etc/ssl/ocsp-bundle-rsa-ecc.crt;

Ясно, что нам нужно предоставить ему обе цепочки промежуточных и корневых сертификатов, но я не могу найти никакой документации о том, поддерживается ли он вообще или в каком порядке должны быть эти сертификаты, то есть, должно ли это быть:

  • intermediate1
  • root1
  • intermediate2
  • root2

или же

  • intermediate1
  • intermediate2
  • root1
  • root2

или, если им нужен общий корень (некоторые сертификаты ECC подписаны с использованием корня RSA):

  • intermediate1
  • intermediate2
  • корень

или просто невозможно ли сделать OCSP с двойными сертификатами в nginx.

Как должен быть построен этот комплект сертификатов?

1 ответ

Решение

Я провел быстрое исследование, и, кажется, самый простой ответ на это "ты не строишь это", и он просто сработает:)

Сшивание OSCP может нормально работать без ssl_trusted certificate пока..

  • Ваше хранилище доверенных корневых сертификатов ОС обновлено (подумайте ca-certificates в RedHat)
  • У тебя есть ssl_stapling on; а также ssl_stapling_verify on;
  • Каждый ваш сертификат (на основе ECC и RSA) включает полную цепочку, за исключением корневого CA

Документы Nginx ясно, что только...

Если файл ssl_certificate не содержит промежуточных сертификатов, сертификат файла, выдавшего сертификат сервера, должен присутствовать в файле ssl_trusted_certificate.

Вы можете проверить свои вещи в тесте SSL Labs, чтобы подтвердить это - сшивание OSCP работает нормально без ssl_trusted_certificate,

Таким образом, двойные сертификаты могут иметь работающий OSCP, если вы просто обеспечите наилучшую практику размещения как самого сертификата, так и его промежуточного сертификата в файле, определенном в ssl_certificate и наличие современных корневых центров сертификации в вашей системе.

Другие вопросы по тегам