Winhttp и p12 сертификат

Я пишу клиентскую программу на VB6, которая будет взаимодействовать с сервером через HTTP. Компания, которая запускает сервер, предоставила мне файл сертификата под названием SomeCertificate.p12.

Моя программа работает на Windows XP. Это операционная система, которую использует клиент.

Я пытаюсь найти, как использовать этот сертификат при отправке запросов на сервер.

Вот что я сделал до сих пор:

  1. Скопировал файл сертификата на мой тестовый компьютер.
  2. Используя Internet Explorer V8, я сделал "Сервис | Свойства обозревателя | Содержимое | Сертификаты | Доверенные корневые органы" и импортировал сертификат.
  3. Установил инструмент winhttpcertcfg.
  4. Запустите следующее из командной строки:

    "winhttpcertcfg -i SomeCertificate.p12 -c LOCAL_MACHINE \ My -a COMPUTERNAME \ USERNAME -p PasswordFromServerCompany"

на выходе было что-то вроде этого. Я заменил разные токены на фиктивные строки:

Импортированный сертификат:

CN = строка1

OU = строка2

O = string3

L = String4

С =string5

Доступ к закрытому ключу для учетной записи уже предоставлен: COMPUTERNAME\USERNAME

  1. Мой код 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 для установки. Как только я это сделал, проблема была решена. Спасибо.

Другие вопросы по тегам