Суть:
У нас в Республике Беларусь вводится подача электронных счет-фактур в госорганы через WEB-сервис. Для этого авторы сервиса создали набор VBS-скриптов, при помощи которых происходит авторизация пользователя при помощи криптопровайдера Avest, подключение к сервису и т.д. На прямом соединении с инетом всё это работает замечательно, коннект на адрес сервиса идёт моментально.
https://vat.gov.by:4443/InvoicesWS/services/InvoicesPort, прописан в скрипте
Но через E4 ни в какую.
Понимаю, что такой запрос до E4 просто не доходит, VBS полностью игнорит настройки прокси на компьютере. Естественно дописываю в цепочку адрес прокси:
http://адрес_прокси:80/https//vat.gov.by:4443/InvoicesWS/services/InvoicesPort.
Ничего. Соображаю, что не происходит авторизация на прокси, дописываю в цепочку имя пользователя и логин на прокси:
https://имя_пользователя:логин@адрес_прокси:80/https//vat.gov.by:4443/InvoicesWS/services/InvoicesPort.
Теперь в stat.txt вижу, что IP-авторизация на прокси прошла, но больше нигде никаких следов. Пробую исключить DNS и прописываю IP-адрес сервиса напрямую:https://имя_пользователя:логин@адрес_прокси:80/IP-адрес_сервиса:4443/InvoicesWS/services/InvoicesPort.
Результат тот же, т.е. разнообразные ошибки :10060, 10061, 11004. Пробую пробросить порт на Е4. Теперь запрос проще.
https://имя_пользователя:логин@адрес_прокси:4443
Результат нулевой, только ошибка другая : SSPI Binding.Receive returns error #-2146893052(0x80090304): The Local Security Authority cannot be contacted (Код 0xE82A0187).
Что еще придумать не знаю. Из-за цейтнота (у нас тут еще и деноминация на носу, и то и это с 1-го июля, да плюс текучка) мозги набекрень.
ред: 31.05.2016 13:27
Какая программа должна разобрать эту "естественную" запись? Eproxy такую не понимает.
Вот тут как раз естественным является предположение, что VBS НЕ игнорирует настройки прокси, т.к. все MS-программы работают через одни и те же сетевые компоненты, поддерживающие настройки прокси (сделанные в IE). Надо по логам прокси (не stat, а http-proxy) смотреть, какие запросы идут при попытках.
А авторизация пользователя при помощи криптопровайдера Avest как происходит? Может это он через прокси не умеет?
ред: 31.05.2016 14:20
Запрос:
Лог из окна выполнения скрипта:
В \HTTP-Proxy\2016-05-31-log.txt пусто (с моего IP запросов нет)
В STAT\201605stat.txt есть строка
11004 — это "имя не найдено в DNS". При работе через прокси разрешение имён в DNS делает сам прокси, и клиент сам по себе не может получить ошибку 11004; разве что в качестве прокси указано неразрешимое локально имя вместо IP).
10060 — это "таймаут подключения". В этой попытке вы указали IP вместо имени, поэтому об 11004 EInvVatService.Connector больше не спотыкается, но получает закономерный таймаут при попытке соединения напрямую вместо прокси.
ред: 31.05.2016 16:14
Но не работает, зараза, и по-прежнему только одна строка в stat.txt. Всё равно 10060
В stat.txt можно уже не искать обращения к этому url, т.к. они после перенастроек должны идти не через http-proxy, а через tcpmap.
ред: 01.06.2016 10:40
Вчера не ответил, поскольку с 16 часов тестирование сервиса закрывается и он недоступен.
Сегодня с утра они выложили обновление своего EInvVatService, через который все их скрипты и работают. По описанию появилась поддержка x64. Естественно начал все эксперименты заново. Результат:
Ещё раз СПАСИБО!
Полагаю, ветку можно удалить.
ред: 01.06.2016 11:20
По поводу правки HOSTS — для http через TCPMAP это обычно приходится делать, т.к. при замене URL целевого сайта на адрес прокси целевому сайту придёт адрес прокси в заголовке "Host:" протокола http, что может привести к неправильной обработке запроса: если на сервере несколько сайтов на одном IP, то он выбирает сайт по заголовку "Host:".