HTTPSPOST запросы #628048


#0 by Ferromag
Нужна помощь экспертов в решении следующей задачи: Дано: SSL сертификат безопасности(установлен и в вин, и в ИЕ) сервер принимающий пост запросы: Соответственно HTTPS POST с кодировкой utf-8. Нужно отправить в ПОСТ запросе набор параметров, например параметр method и значение check. Погуглив тему, информации по пост запросам bp 1C крайне мало, особенно что касается защищенных каналов. при чем 2 основных технологии: 1. Через WinHHTP объект (что мне больше визуально нравится) 2. Формирование файлика с запросом и загрузка его на сервер (оч сильно смущает, что сервер примет файлик запроса) ----- Выпадает с ошибкой Истекло время ожидание. Как мне кажется, порт соединения должен как-то отдельно фиксироваться. Через браузер по-крайней мере простое обращение к указанному адресу выдает XML ответ о неверном сертификате, а вот с 1С с указанным выше вариант вообще результат печальный. Заранее спасибо тем, кто откликнется по существу.
#1 by smaharbA
#2 by Asmody
а теперь то же самое, но нативными средствами
#3 by smaharbA
а чего, третий параметр заголовки, а так представления не имею как с хттпс нативно работать - не адинеснег я
#4 by Ferromag
Спасибо, но пока только {Форма.Форма}: Ошибка при вызове метода контекста (Send): Произошла исключительная ситуация (WinHttp.WinHttpRequest): Время ожидания операции истекло Я может быть не до конца конечно понимаю технологию, но возможно где-то нужно еще передавать сертификат. Потому что, когда я открывал этот сервер через ИЕ, он мне выдавал запрос на выбор сертификата (где он был правда единственный установленный). Я конечно понимаю, что мне еще нужно решить проблему с сертификатом, но ИЕ как минимум возвращает следующий код  <Result OperationState="10">Передан некорректный сертификат</Result> Это даже без передачи параметров. Пробывал и в коде сенд сделать без передачи - результат тот же, вышло время ожидания. Вот как был переписан мой код по примеру выше: В фаирволле не думаю же что-то надо еще отдельно прописывать, потому что все отдельные махинации с этим портом заканчивались тем, что была ошибка не удается установить соединение с сервером.
#5 by smaharbA
прокси ?
#6 by Ferromag
Прокси есть, но для служб HTTP и HTTPS стоит NAT трансляция, соответственно такой код (ниже) без явного указания прокси спокойно работал. Правда это был другой абсолютно сервер, с передачей GET запросов.
#7 by smaharbA
а теперь найдите одно отличие в УРЛ
#8 by Ferromag
Ну да, тут явно не указан порт для SSL, была мысль на счет него. Но куда его пристроить тогда не совсем понятно становится. И когда я создаю правило для порта, что любой источник, любой приемник может по нему общаться, пробывал при чем и с включенной НАТ, и с выключенной (но тогда по идее надо указывать уже как-то явно для него прокис) - результат был одинаков: {Форма.Форма}: Ошибка при вызове метода контекста (Send): Произошла исключительная ситуация (WinHttp.WinHttpRequest): Не удается установить соединение с сервером И в итоге я вернулся к тому варианту, с которого и начал) --------------------------- Написав это, решил перепроверить еще разок все и тут же взглянув на свои тестовые правила обнаружил косяк... Галочка разрешить не стояла все это время для порта, вот и блочились все пакеты. Спасибо большое за помощь, теперь наконец-то получил результат аналогичный ИЕ.
#9 by Ferromag
Голова просто уже кругом идет, когда в последний момент получаешь пачку бумаг и узнаешь, что все в корни меняется и нужно все срочно переделать, еще и постоянно так дергают по всяким мелочам. Спасибо еще раз, как минимум заставило еще раз чуть более свежим взглядом посмотреть на вещи)
#10 by smaharbA
если есть прокси, просче явно задать прокси да, в ошибка нужно не Это.Опция(ХТТП,2,"Windows-1251"); а
#11 by Ferromag
у меня сейчас 2 таких строки, я так переделал пример) Первую я так понял надо заменить на Это.Опция(ХТТП,2,65001);//для утф8 А 2ю оставить как есть? Потому что назначение второй строки я не знаю. Явное определение прокси будет получается так? ХТТП.SetProxy(0,"ай_пи_прокси:порт_прокси"); В любом случае проблема была именно в закрытом SSL порте. Меня и поставило в тупик то, что как я считал, открывая его, связь с сервером вообще полностью пропадает.
#12 by smaharbA
кодировки задаются численным кодом 1251 == windows-125 65001 == utf8 вторая опция задает игнор для не доверенных сертификатов
#13 by smaharbA
т.е. не игнор, а работу даже если сертификат просрочен или отзозван
#14 by Ferromag
Очень благодарен за помощь и разъяснения, спасибо
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С