Назад | Перейти на главную страницу

Нужно ли мне предоставлять корневой сертификат при настройке SSL-сертификата на nginx

В тесте Qualys SSL всегда предупреждают, что корневой сертификат является дополнительной загрузкой и может быть безопасно удален.

Однако с веб-сайта Comodo их руководство по установке сертификата на nginx

NGINX Needed for this task: * PEM encoded certificates (Root, Intermediate(s) and 
Domain/Device) COMBINE (CONCATENATE) MULTIPLE CERTIFICATES INTO ONE FILE 

Вы знаете, они являются CA и являются подлинным ответчиком. Итак, кому я должен доверять?

Обновления: я также собираю больше советов от других CA

Предложите добавить корневой сертификат

Предложить не нужен корневой сертификат

Так что сбивает с толку?

Оба теста Qualys SSL и Comodo верны. Comodo верен с точки зрения кода на стороне сервера. Nginx должен доверять сертификатам, которые он использует.

С другой стороны, тест Qualys SSL верен с точки зрения сетевого протокола. Во время согласования SSL сервер должен отправить свой собственный сертификат SSL и все промежуточные сертификаты ЦС, кроме корневого сертификата. Ссылка из RFC 5246 §7.4.2:

certificate_list Это последовательность (цепочка) сертификатов. Сертификат отправителя ДОЛЖЕН быть первым в списке. Каждый последующий сертификат ДОЛЖЕН напрямую удостоверять предыдущий. Поскольку для проверки сертификата требуется, чтобы корневые ключи распределялись независимо, самозаверяющий сертификат, указывающий корневой центр сертификации, МОЖЕТ быть исключен из цепочки при условии, что удаленный конец уже должен иметь его, чтобы проверить его в любом случае.

Точка проверки цепочки сертификатов заключается в том, что у вас есть локально доверенные (корневые) сертификаты, и с этого момента вы перекладываете доверие на сертификаты, отправленные партнером. Таким образом, сервер должен отправлять только конечный сертификат и промежуточные сертификаты, необходимые для построения цепочки доверия от локального корневого сертификата к конечному сертификату. Это означает, что вы не должны отправлять корневой сертификат, но если вы этого не сделаете, он обычно игнорируется.

И вы должны убедиться, что вы добавляете сертификаты в правильном порядке, то есть сначала листовой сертификат, а затем сертификаты цепочки в правильном порядке подписи. Некоторые серверы или клиенты могут работать в неправильном порядке, но вам не стоит на это рассчитывать.