У меня есть внутренний PKI с общим корневым ЦС и несколькими промежуточными ЦС, как сделать что-либо, выпущенное любым промежуточным ЦС, чтобы доверять всему?

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

В настоящее время я понимаю, что это нелегко , но мне интересно, ошибочно ли мое понимание.

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

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

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

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

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

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

0
задан 10 January 2021 в 23:39
1 ответ

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

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

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

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

3
ответ дан 24 April 2021 в 01:27

Теги

Похожие вопросы