VBA ServerXMLHTTP запрос https с самозаверяющим сертификатом

Я использую объект ServerXMLHTTP для создания некоторых HTTP-запросов на скрипте excel 2007 vba.

Но мне нужно подключиться к https-серверу, который использует самоподписанный SSL-сертификат, поэтому по умолчанию я получаю сообщение «Недопустимый или недопустимый сертификат». Есть ли способ настроить объект ServerXMLHTTP, чтобы он не требовал сертификата CA?

Ниже приведен пример кода:

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") objHTTP.Open "POST", "https://invernalia.homelinux.net", False, "user", "password" objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") 

Раньше у меня была эта проблема, и мне удалось ее преодолеть только благодаря этому:

 Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") objHTTP.SetOption(2, objHTTP.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS) objHTTP.Open "POST", "https://invernalia.homelinux.net", False, "user", "password" objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") 

Я нашел здесь метод setOption и метод getOption

Здесь, в этом коде, я только что использовал SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS но вы можете попробовать другие:

  • SXH_SERVER_CERT_IGNORE_WRONG_USAGE
  • SXH_SERVER_CERT_IGNORE_CERT_CN_INVALID
  • SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID
  • SXH_SERVER_CERT_IGNORE_UNKNOWN_CA
 Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") objHTTP.SetOption(2, objHTTP.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS) objHTTP.Open "POST", "https://invernalia.homelinux.net", False, "user", "password" objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") 

Полученное выше решение для работы с незначительными изменениями. Вместо:

 objHTTP.SetOption(2, objHTTP.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS) 

Я использовал:

 objHTTP.SetOption(2) = (objHTTP.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS) 

В противном случае я получаю сообщение об ошибке:

Ошибка компиляции Microsoft VBScript ‘800a0414’ Невозможно использовать круглые скобки при вызове Sub objHTTP.SetOption (2, objHTTP.GetOption (2) – SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS)

ссылка: SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS

  • Как сравнить две целые строки в листе
  • Как очистить память, чтобы предотвратить «ошибку из памяти» в excel vba?
  • Использование UDF в Excel для обновления рабочего листа
  • 800A0401 - Ожидаемый конец заявления
  • Как открыть файл Excel VBA с использованием приложения по умолчанию
  • Рабочие книги VBA. Не запрашивать, если пользователь хочет сохранить?
  • Сохраните каждый лист в книге для разделения файлов CSV
  • Outlook: применить правила к текущему сообщению?
  • Цикл через каждую ячейку в диапазоне ячеек при задании объекта Range
  • Отправка форматированного текстового сообщения Lotus Notes из Excel VBA
  • 2 способа для «ClearContents» на VBA Excel, но 1 работает нормально. Зачем?
  • Давайте будем гением компьютера.