У меня есть клиент-серверное приложение SSL.
Мой SSL-клиент имеет только один корневой центр сертификации (назовем его rootCA1), настроенный в его хранилище доверенных сертификатов.
Однако мой ssl-сервер выдает сертификат, подписанный промежуточным центром сертификации (назовем его interCA1).
Промежуточный ЦС имеет свой сертификат (назовем его deviceCert), подписанный rootCA1 (которому доверяет клиент). Сервер SSL выдает сертификаты interCA1, а также rootCA1 вместе с deviceCert во время ssl hello.
Теперь openssl отклоняет такое соединение на стороне клиента.
Openssl должен быть в состоянии установить цепочку доверия, посмотрев на deviceCert--signed by-->interCA1--signed by-->rootCA1
Так как он доверяет rootCA1 и цепочка доверия видна в моем понимании.
Так почему же это не удается? почему необходимо иметь промежуточные CA, сконфигурированные в хранилище доверенных сертификатов клиента?