У меня есть внутренняя PKI с общим корневым центром сертификации и несколькими промежуточными центрами сертификации. Как сделать так, чтобы все, что выпущено любым промежуточным центром сертификации, доверялось всему?

У меня есть внутренняя PKI с общим корневым центром сертификации и несколькими промежуточными центрами сертификации. Как сделать так, чтобы все, что выпущено любым промежуточным центром сертификации, доверялось всему?

Ситуация: У меня есть внутренняя PKI с общим корневым CA и несколькими промежуточными CA. Я хочу, чтобы все, что выпущено любым промежуточным CA, доверяло друг другу. Есть ли способ сделать это, который устроит большинство программ/языков?

Мое нынешнее понимание таково, что этонеЭто вполне возможно, но мне интересно, не является ли мое понимание ошибочным.

Итак, если у нас есть программы:

  • фанки свежий с цепочкой доверия общего корня => первый int
  • сверкающе чистый с цепочкой доверия общего корня => второй int

и мне абсолютно необходимо взаимное доверие между этими двумя, единственный ли мой выбор - сделать большой сертификат CA с root=>first и root=>second, скрепленными друг с другом? Или я могу как-то просто иметь цепочку с root в ней?

Могу ли я обойти все это, добавив корень в хранилище доверенных сертификатов на уровне ОС или, если это контейнеры, в определенное хранилище доверенных сертификатов контейнеров? (в разделе /etc/pki/ca-trust/source/anchorsили что-то в этом роде)

Моя вторая мысль, и, возможно, она плохая, но поскольку все находится внутри и у нас есть CRL, мы можемтолькоиспользуйте корневой центр сертификации и просто строго следите за чистотой CRL для сертификатов TLS вместо сертификатов уровня центра сертификации.

Есть ли способ заставить программное обеспечение построить свою собственную цепочку, если я предоставлю списки отзыва сертификатов и центры сертификации в определенных конечных точках, определенных где-либо?

решение1

Я не уверен, правильно ли я понял ваш вопрос и правильно ли вы поняли концепцию, но

  • Сертификаты не доверяют друг другу — вместо этого клиент TLS доверяет некоторым центрам сертификации и на основании этого выводит доверие к сертификатам сервера.
  • Клиент TLS в основном доверяет каждому сертификату, выпущенному доверенным CA, пока он соответствует ожиданиям, например, не истек срок действия, соответствует теме и т. д. Клиент TLS должен иметь возможность построить цепочку доверия до доверенного CA. Поэтому клиент TLS должен знать соответствующий промежуточный сертификат(ы), который обычно отправляется внутри рукопожатия TLS.

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

Смотрите такжеСтруктура сертификата SSL 101: Как браузер на самом деле проверяет действительность данного сертификата сервера?.

Связанный контент