Должен ли клиент TLS иметь промежуточный CA в хранилище доверенных сертификатов? - PullRequest
0 голосов
/ 10 февраля 2019

Когда происходит квитирование TLS, сервер отправляет в своем сообщении ServerHello свой цифровой сертификат.Этот цифровой сертификат имеет цифровую подпись промежуточного ЦС с именем A, а ЦС A также имеет сертификат, который подписан ЦС с именем root, сертификат которого самоподписан, образуя цепочку сертификатов.Затем клиент должен установить доверие, проверяя сертификат сервера.Чтобы выполнить эту проверку, клиент должен проверить правильность всей цепочки?Должен ли клиент хранить в доверенном хранилище все сертификаты (A и Root) или клиент загрузит их?

1 Ответ

0 голосов
/ 10 февраля 2019

У клиента обычно есть только корневой CA в локальном хранилище доверенных сертификатов.Листовой сертификат и промежуточный сертификат, ведущий к корневому ЦС, должны быть предоставлены сервером.Промежуточные сертификаты обычно отправляются в дополнение к конечному сертификату в рамках рукопожатия TLS.

Но это типичная неправильная конфигурация, когда сервер отправляет только листовой сертификат.В этом случае проверка сертификата завершится неудачей, если клиент уже не знает промежуточные сертификаты или не сможет их получить каким-либо образом.Поскольку часто используются одни и те же промежуточные сертификаты, некоторые браузеры, такие как Firefox, кэшируют промежуточные сертификаты, которые они получают при взаимодействии с сервером A, и заполняют их, когда сломанный сервер B не отправляет необходимые промежуточные сертификаты.Другие браузеры (например, Google Chrome) будут пытаться загрузить недостающие промежуточные сертификаты из Интернета.Наиболее простые клиенты (например, приложения, написанные на Python, Java ... или curl) вместо этого просто потерпят неудачу с ошибкой проверки сертификата.

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