#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 в машинное хранилище.