Я поддерживаю классическое приложение ASP, которое подключается к платежному шлюзу через HTTPS. До недавнего времени проблем не возникало. Несколько дней назад были установлены последние обновления установлен на сервере (Windows Server 2003) и вызвал сбой сайта. Ниже приведен фрагмент кода.
Dim oHttp
Dim strResult
Set oHttp = CreateObject("MSXML2.ServerXMLHTTP")
oHttp.setOption(2) = 13056
oHttp.open "POST", SOAP_ENDPOINT, false
oHttp.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
oHttp.setRequestHeader "SOAPAction", SOAP_NS + "/" & SOAP_FUNCTION
oHttp.send SOAP_REQUEST
Ниже дамп объекта ошибки: -
Номер: -2147012852 Описание: сертификат необходим для завершения аутентификации клиента. Сообщение: Сертификат требуется для завершения аутентификации клиента
Сначала я подумал, что это произошло потому, что SSL-сертификат Платежного шлюза не аутентифицировался или им нужен был сертификат клиента. Я проверил URL-адрес в браузере на сервере, и он правильно отображается без ошибок, и подтвердил, что серверу платежного шлюза не требуется сертификат клиента.
Я в растерянности. Все исследования, которые я провел, ни к чему не привели. Я даже пробовал следующее, найденное в Stackoverflow: -
Получение XMLHTTP для работы с HTTPS
В последнем утверждалось, что для XMLHTTP требуется сертификат клиента, хотя серверу не требуется он указал на статью базы знаний о том, как ее установить, но она устарела и не работает.