Почему WinHTTP не отправляет сертификат клиента с цепочкой?

#https #certificate #winhttp

#https #сертификат #winhttp

Вопрос:

Я работаю над клиент-серверным приложением, где сервер является веб-сервисом, который выполняет аутентификацию клиента на основе клиентского сертификата SSL. Сертификат клиента выдается Root-CA -> Intermedia-CA-1 -> Intermedia-CA-2. Я импортировал сертификат как в хранилище сертификатов пользователя, так и в хранилище сертификатов компьютера.

Используйте WinHttpSetOption(запрос, WINHTTP_OPTION_CLIENT_CERT_CONTEXT, (LPVOID)pCertCtx, sizeof(* pCertCtx)) для установки сертификата клиента.

WinHTTP отправляет как сертификат клиента, так и промежуточные центры сертификации при поиске pCertCtx в пользовательском хранилище.

Но WinHTTP отправляет только сертификат клиента, не отправляет промежуточные центры сертификации, когда выполняется поиск pCertCtx из локального хранилища компьютеров или из хранилища сертификатов в памяти.

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

Ответ №1:

Решаемая путем добавления центра сертификации intermedia в машинное хранилище.