Winhttp и p12 сертификат
Я пишу клиентскую программу на VB6, которая будет взаимодействовать с сервером через HTTP. Компания, которая запускает сервер, предоставила мне файл сертификата под названием SomeCertificate.p12.
Моя программа работает на Windows XP. Это операционная система, которую использует клиент.
Я пытаюсь найти, как использовать этот сертификат при отправке запросов на сервер.
Вот что я сделал до сих пор:
- Скопировал файл сертификата на мой тестовый компьютер.
- Используя Internet Explorer V8, я сделал "Сервис | Свойства обозревателя | Содержимое | Сертификаты | Доверенные корневые органы" и импортировал сертификат.
- Установил инструмент winhttpcertcfg.
Запустите следующее из командной строки:
"winhttpcertcfg -i SomeCertificate.p12 -c LOCAL_MACHINE \ My -a COMPUTERNAME \ USERNAME -p PasswordFromServerCompany"
на выходе было что-то вроде этого. Я заменил разные токены на фиктивные строки:
Импортированный сертификат:
CN = строка1
OU = строка2
O = string3
L = String4
С =string5
Доступ к закрытому ключу для учетной записи уже предоставлен: COMPUTERNAME\USERNAME
Мой код VB6 выглядит примерно так:
Private WithEvents m_ServerObj As WinHttpRequest Set m_ServerObj = Новый WinHttpRequest m_ServerObj.Open "GET", " https://serveraddress/"
Вызовите m_ServerObj.SetClientCertificate ("LOCAL_MACHINE \ Personal \ SomeCertificate")
m_ServerObj.Send TextToSend
Вызов Send вызывает исключение: "Для завершения аутентификации клиента требуется сертификат"
Я пробовал разные строки в вызове SetClientCertificate, но продолжаю получать ту же ошибку.
Буду признателен за любую помощь и советы. Что я делаю неправильно? Мой код неверен? Я неправильно использовал winhttpcertcfg?
благодарю вас.
1 ответ
Компания-сервер прислала мне сертификат.PEM для установки. Как только я это сделал, проблема была решена. Спасибо.