Требует ли, чтобы самозаверяющий сертификат, импортированный в корневое хранилище, (самозаверяющий) издатель был также импортирован в корневое хранилище? - PullRequest
1 голос
/ 30 сентября 2019

Требует ли самозаверяющий сертификат, импортированный в корневое хранилище, (самозаверяющего) эмитента для импорта в корневое хранилище?

Предположим, у меня естьсертификат A, который подписан другим сертификатом B. Тогда достаточно ли импортировать A только в корневое хранилище, т.е. проверка сертификата останавливается на A, или же B также следует импортировать в корневое хранилище для правильной проверки сертификата?

Причина, по которой яЯ задаю этот вопрос: я сталкивался с разными результатами с разными продуктами (например, с веб-браузером или системой), и поэтому я хочу знать правильный путь.

1 Ответ

2 голосов
/ 01 октября 2019

Вы должны включить сертификат B в доверенное хранилище. Как упоминалось в комментариях, ваш пробег может отличаться, поскольку клиенты и серверы по-разному реализуют RFC.

С точки зрения правил, спецификация для сертификатов x.509 указана в IETF RFC 5280 ,Ключевая информация заключается в том, что для того, чтобы произошло рукопожатие SSL, клиент должен выполнить полную проверку цепочки сертификатов, которая заканчивается самоподписанным сертификатом, который находится в вашем хранилище доверия.

Ваш сертификат не является самоподписанным, онвыдается другим центром сертификации (сертификат B). Если в вашем хранилище доверенных сертификатов нет B, значит цепочка доверия разорвана. Однако, как уже упоминалось выше, вполне возможно, что клиент не проверит полную цепочку сертификатов.

Подумайте об этом так. Вашему клиенту предоставляется сертификат A, который подписан буквой «B». Клиент должен проверить, что подпись на A в порядке, а это значит, что ему нужно (сертификат) "B". Если B является «корневым» CA или самоподписанным, его поля «эмитент» и «субъект» будут совпадать. И если этот Сертификат B находится в вашем TrustStore, вы золотые.

Задача сервера - отправить вам список сертификатов для TLS .

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

Здесь визуальное представление проверки цепочки сертификатов здесь . Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...