Определенный веб-сервер SOAP, к которому я хочу подключиться, настроен на «Принять клиентские сертификаты», но не требует их!
Когда я ввожу URL-адрес непосредственно в Internet Explorer, он покажетвсплывающее окно для сертификата клиента (которого у меня нет).Когда я отменяю это диалоговое окно, появляется второе диалоговое окно для имени пользователя и пароля.Это прекрасно работает с моим именем пользователя и паролем.
Я пытаюсь сделать то же самое из скрипта, используя ServerXMLHTTP
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0") // or 4.0
objXMLHTTP.open("POST",
"https://www.example.com",
false,
"username",
"password");
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
// objXMLHTTP.setOption(2) = 13056; // This does not help
objXMLHTTP.send(XMLReq); // This fails
Сообщение об ошибке msxml6.dll: An unknown error occurred while processing the certificate.
или msxml6.dll: A connection with the server could not be established
Как я могу заставить ServerXMLHTTP игнорировать необязательный (!) Запрос для сертификата клиента и продолжить базовую аутентификацию?Или какой другой компонент я могу использовать?
Примечания:
- Я не могу изменить настройки на веб-сервере или получить сертификат клиента.
- Я также попробовал WinHTTP.WINHTTPRequest.5.1, но это не помогло.
- Помните: этот вопрос касается клиентских сертификатов.
objXMLHTTP.setOption(2) = 13056
будет игнорировать только сервер ошибки сертификата.