Есть ли способ избежать явного добавления сертификата B в хранилище CA Е?
Общий способ заключается в отправке всех промежуточных сертификатов вместе с сертификатом листа в рамках рукопожатия TLS. Например, если вы подключаетесь к google.com вы получите следующую цепочку сертификатов, предоставленную сервером в TLS рукопожатия:
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
Использование промежуточных сертификатов (1,2) клиент может затем построить цепочку доверия от (0) до локально хранимого доверенного ЦС (/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
в этом случае).
Конечно, вы также можете добавить промежуточные сертификаты в качестве доверенных клиентов. Но поскольку есть намного больше, которые также меняются чаще, чем доверенные корневые сертификаты, вам потребуется немного больше памяти, но вы также будете регулярно обновлять своих клиентов новыми промежуточными сертификатами.
с помощью openssl, есть ли способ автоматизировать извлечение сертификата B либо от клиента, либо от другого источника (возможно, такого поля, как issuerDistributionPoint в сертификате D)?
openssl не предоставляет конкретные инструменты для решения этой проблемы. В браузере на рабочем столе Google Chrome на самом деле будет пытаться загрузить отсутствующие промежуточные сертификаты из Интернета, возможно, исходя из информации в части доступа к сертификату полномочий. Но я не знаю других браузеров (кроме других производных Chromium, таких как Opera), делая это.
Stack Overflow - это сайт для вопросов программирования и развития. Этот вопрос кажется вне темы, потому что речь идет не о программировании или разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше спросить [Суперпользователя] (http://superuser.com/) или [Информационный стековый обмен] (http://security.stackexchange.com/). Также [Где я размещаю вопросы о Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww
*** 'E' *** (или ***' C' ***) нельзя использовать в пути для проверки *** сертификата 'D' ***. Также см. [RFC 4158, Internet X.509 Инфраструктура открытого ключа: создание пути сертификации] (http://tools.ietf.org/html/rfc4158). – jww