1с ошибка работы с интернет ssl connect error

   OlegSham

19.04.22 — 10:34

Прошу помочь советом, не получается простая выгрузка в http — возврат 301

до этого не писал выгрузку в http, поэтому не ругайте.

Взял в качестве примера рабочую выгрузку, которая на работе. И по аналогии сделал.

Но не заработало.

база УПП 8.2, но может работать и под 8.3. Сейчас работаю в ней релизе 8.3.20.1710.

в примере ниже чуть изменил адреса и пароли

Надо по адресу https://api.mindbox.ru/v3/operations/bulk?endpointId=FinAppOffline&operation=DirectCrm.PointsOfContacts.Import&csvCodePage=65001

отправить тело запроса.

ИмяСервера = «api.mindbox.ru»;

СсылкаНаРесурс = «/v3/operations/bulk?endpointId=FinAppOffline&operation=DirectCrm.PointsOfContacts.Import&csvCodePage=65001»;

Делаю так

Вариант 1.

HTTP = Новый HTTPСоединение(ИмяСервера);

// Получим временный файл для передачи в теле POST запроса

ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();

Текст.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);

// Получим временный файл — тело ответа POST запроса

ФайлРезультатИсполнения = ПолучитьИмяВременногоФайла();

ЗаголовокЗапросаHTTP = Новый Соответствие();

ЗаголовокЗапросаHTTP.Вставить(«Authorization», «Mindbox secretKey=»»Y78952UE7a5S»»»);

ЗаголовокЗапросаHTTP.Вставить(«Accept»,»application/json»);

ЗаголовокЗапросаHTTP.Вставить(«Content-Type», «text/csv;charset=utf-8»);

Ответ = HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, СсылкаНаРесурс, ФайлРезультатИсполнения, ЗаголовокЗапросаHTTP);

КодСостояния = Ответ.КодСостояния;    // возвращает 301

Вариант 2.

HTTP = Новый HTTPСоединение(ИмяСервера);

HTTPЗапрос = Новый HTTPЗапрос(СсылкаНаРесурс);

HTTPЗапрос.УстановитьИмяФайлаТела(ФайлТелаЗапроса);

Ответ  = HTTP.ОтправитьДляОбработки(HTTPЗапрос);

КодСостояния = Ответ.КодСостояния;    // возвращает 301

Удалось установить, что пароль не влияет.

Т.е. еще до авторизации неверно.

Возможно, что надо передать как https — но не могу поставить как в справке — не работает.

HTTP = Новый HTTPСоединение(ИмяСервера,,,,Истина);

Как проверить и протестировать ?

   OlegSham

1 — 19.04.22 — 10:35

В дополнение.

Я не понял — в рабочем примере описано 4 параметра  в ОтправитьДляОбработки:

HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, СсылкаНаРесурс, ФайлРезультатИсполнения, ЗаголовокЗапросаHTTP);

А в справке — только 2 там — ФайлТелаЗапроса, СсылкаНаРесурс

Как такое ?

   arsik

2 — 19.04.22 — 10:37

(1) Посмотри, что у тебя в ответе. Там должна быть ссылка новая, возможно на твой загруженный файл.

   p-soft

3 — 19.04.22 — 10:37

ЗащищенноеСоединение = Неопределено;

Если Протокол = «https» Тогда

    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;

            
    Если НЕ ПортУказан Тогда

        Порт = 443;

    КонецЕсли;

КонецЕсли;

Попытка

    service = Новый HTTPСоединение(Сервер,Порт,name, psswrd,,Таймаут,ЗащищенноеСоединение);

и т.п..

   OlegSham

4 — 19.04.22 — 10:46

   OlegSham

5 — 19.04.22 — 10:47

(3)т.е. мне поменять порт ? не понял

   arsik

6 — 19.04.22 — 10:52

(5) Тебе в ответе прилетает, что давай ка ты иди на https, а не на http. Сделай как в (3)

   arsik

7 — 19.04.22 — 10:54

+(6) HTTP = Новый HTTPСоединение(ИмяСервера,,,,,,Новый ЗащищенноеСоединениеOpenSSL);

   OlegSham

8 — 19.04.22 — 10:55

Спасибо!

Сделал — заработало

HTTP = Новый HTTPСоединение(ИмяСервера,443,,,,,Новый ЗащищенноеСоединениеOpenSSL)

НО! А как сделать для 8.2 ?

Там же нет параметра ЗащищенноеСоединениеOpenSSL

   OlegSham

9 — 19.04.22 — 10:56

т.е. обработка выполняется под 8.3 и 8.2.

Для 8.3 заработало.

Для 8.2 — не знаю как указать Новый ЗащищенноеСоединениеOpenSSL

   arsik

10 — 19.04.22 — 10:57

(9) Вроде никак. Попробуй просто порт указать 443.

Если не прокатит, тогда нужно будет с сервера скачивать сертификат, добавлять его в валидные для 1С

   Кир Пластелинин

11 — 19.04.22 — 10:59

(9) ну в синтаксис-помощнике посмотрите HTTPСоединение на 8.2. Последний параметр (булево), емнп. ну и про сертификаты не забываем.

   OlegSham

12 — 19.04.22 — 11:06

спасибо, попробую

   OlegSham

13 — 19.04.22 — 11:46

Для работы с 8.2.

Посмотрел справку и описания работы. Написал .

В свойствах пишет — защищенное соединеие, но

HTTP = Новый HTTPСоединение(ИмяСервера,443,,,,Истина);    // порт 443 — для https

    
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();

Текст.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);

ФайлРезультатИсполнения = ПолучитьИмяВременногоФайла();

    
ЗаголовокЗапросаHTTP = Новый Соответствие();

ЗаголовокЗапросаHTTP.Вставить(«Authorization», «Mindbox secretKey=»»YS7852awsXJBCgUE7a5S»»»);

ЗаголовокЗапросаHTTP.Вставить(«Accept»,»application/json»);

ЗаголовокЗапросаHTTP.Вставить(«Content-Type», «text/csv;charset=utf-8»);

// возникает ошибка — Ошибка работы с Интернет:  SSL connect error

Ответ = HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, СсылкаНаРесурс, ФайлРезультатИсполнения, ЗаголовокЗапросаHTTP);

   OlegSham

14 — 19.04.22 — 11:47

Т.е. после

HTTP = Новый HTTPСоединение(ИмяСервера,443,,,,Истина);    // порт 443 — для https

свойства соединения — защищеное.

А когда вызываю

Ответ = HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, СсылкаНаРесурс, ФайлРезультатИсполнения, ЗаголовокЗапросаHTTP);

возникает ошибка — Ошибка работы с Интернет:  SSL connect error

   OlegSham

15 — 19.04.22 — 12:13

Пишут для 8.2

Реализована поддержка протоколов TLS 1.1 и 1.2 в тех случаях, когда в параметрах соединения не указан клиентский сертификат. Протокол SSL v3.0 будет использован только в том случае, если клиентское приложение запускается с параметром командной строки /HttpsForceSSLv3. Во всех остальных случаях протокол SSL v3.0 не используется.

Параметр AllowSSLv3 файла conf.cfg игнорируется.

Объект ИнтернетПочта не поддерживает протокол SSL v3.0.

А как для сервера его пропивать этот параметр ?

т.е. как в файле conf.cfg указать AllowSSLv3 ?

   arsik

16 — 19.04.22 — 12:28

(15) На вскидку, у тебя 3 варианта

1) https://sync1c.ru/1c-82-https

2) WinHttpRequest

3) stunnel

   arsik

17 — 19.04.22 — 12:34

+(16) Ах да. Забыл еще один вариант.

4) И конечно микросервис на go :)

  

Кир Пластелинин

18 — 19.04.22 — 12:57

(15) антивирус есть? где то попадалось, что он может заблочить.

(16) по первому пункту — там другой текст ошибки был бы.

  1. 16.08.2016, 13:17


    #1

    Галина111 вне форума


    Пришел за помощью


    По умолчанию Передача файла, используя HTTP POST запрос.

    Здравствуйте. Нобходимо организовать отправку данных , используя HTTP POST запрос. Я не могу разобраться — как формируется этот запрос? Т.е. есть сформированный файл с определенным именем. Надо его отправить.

    HTTPСервер = «Сервер куда отправляю.ru»;
    ПостФайл = «C:dataфайл_ккоторый_нужно_от править.csv»;
    ФайлРезультат = «C:result.xml»;
    Попытка
    Соединение = Новый HTTPСоединение(HTTPСервер,80,»ЛО ГИН»,»ПАРОЛЬ»,,Истина);
    Исключение
    Сообщить(ОписаниеОшибки());
    Соединение = Неопределено;
    КонецПопытки;
    Если Соединение = Неопределено Тогда
    Сообщить(«Не удалось подключиться к серверу, указанному в настройке обмена! Обработка прервана!»);

    КонецЕсли;

    ИмяФайла = ФайлРезультат;

    А далее — я должна применить — ОтправитьДЛяОбработка(HTTPЗ� �прос, ФайлРезультата)

    Как сформировать HTTPЗапрос для имеющегося для отправки файла?

    — Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка работы с Интернет: SSL connect error


  2. 16.08.2016, 14:29


    #2

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Цитата Сообщение от Галина111
    Посмотреть сообщение

    — Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка работы с Интернет: SSL connect error

    Диагностика говорит, что у вас проблемы с установлением коннекта по SSL
    А вы и действительно обращаетесь через http («Соединение = Новый HTTPСоединение») через 80-й порт. Для установления связи через SSL нужно иметь соответствующий сертификат и «связь» идет посредством https


  3. 17.08.2016, 06:09


    #3

    Галина111 вне форума


    Пришел за помощью


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Здравствуйте. Спасибо за ответ. А можно поподробнее — про сертификат. КУда и как этот сертификат нужно установить? Я вижу этот сертитификат, когда вхожу на этот зайт.


  4. 17.08.2016, 07:40


    #4

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Цитата Сообщение от Галина111
    Посмотреть сообщение

    КУда и как этот сертификат нужно установить? Я вижу этот сертитификат, когда вхожу на этот зайт.

    Почитайте:
    http://1c-pro.ru/threads/priem-i-otp…y-s-ssl.51306/
    http://infostart.ru/public/303044/
    А можно и дальше поискать что интересное по данной теме
    https://www.google.ru/webhp?sourceid…-8#q=ssl%201c8

    Удачи


  5. 17.08.2016, 07:50


    #5

    Галина111 вне форума


    Пришел за помощью


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Первые два- использование сторонней программы ? Ну и неужели Вы думаете, что я не искала в Интернете? Не поняла — как устанавливать сертификат.


  6. 17.08.2016, 09:18


    #6

    Галина111 вне форума


    Пришел за помощью


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Я вошла на сайт, куда необходимо передавать файл, в сертификатате — у меня запустился Мастер экспорта сертификата, выбрала Экспорт в кодировке Base64 и экспортировала, сохранила на рабочий стол , как файл , например 1.cer. Затем, в конфе 1с открыла файл cacert.pem и этот файл — 1.cer и данный из него — скопировала в cacert.pem (добавила).
    Но ошибку (SSL — соединения все равно выдает ). Что не так?


  7. 17.08.2016, 09:22


    #7

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Цитата Сообщение от Галина111
    Посмотреть сообщение

    Первые два- использование сторонней программы ?

    Вы не указали какия у вас платформа 1С — 8.2 или 8.3
    Если 8.2 и вам нужно работать через ssl, то без сторонней програмы вам не обойтись.

    Хотя… Подождите…. Мне кажется мы друг-друга наверное не совсем понимаем.
    Уточните — у вас не получается сформировать эл. письмо «внутри» корпоративной сети (к своему например ms exchange) или же отправить письмо «наружу» например на yandex.ru? или же вы хотите общаться с внешними сервисами?

    Цитата Сообщение от Галина111
    Посмотреть сообщение

    Не поняла — как устанавливать сертификат.

    Чтобы «установить сертификат» вначале нужно его «получить».
    В этой части сертификаты бывают 2-видов: самоподписанные («самостоятельно сделанные») и полученные от удостоверяющего центра.
    И только после того как у вас будет этот сертификат, вы сможете его установить

    А так, может поможет тут — http://infostart.ru/public/79494/
    или тут — http://its.1c.ru/db/metod8dev#content:1581:hdoc


  8. 17.08.2016, 11:01


    #8

    Галина111 вне форума


    Пришел за помощью


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    У меня — 8.2 .Есть файл(файлы), которые я отправляю на некий сайт- они там попадают в их базу. Сейчас для этого я использую некий файл с расширением *.jar , который запускаю в командной строке с некими ключами и именем каталога, в котором лежат файлы. Все срабатывает, все передается. Теперь надо это же сделать из 1с.


  9. 17.08.2016, 11:11


    #9

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    Цитата Сообщение от Галина111
    Посмотреть сообщение

    Есть файл(файлы), которые я отправляю на некий сайт- они там попадают в их базу.

    Т.е. вам нужно грузить информацию (файл) в сервис, который находится «снаружи».

    Цитата Сообщение от Галина111
    Посмотреть сообщение

    У меня — 8.2

    А насколько сложно перейти на 8.3? Я сталкивался с проблемами при работе с сервисами на 8.2

    Возможно вам поможет это — https://helpf.pro/faq/view/1298.html


  10. 17.08.2016, 11:20


    #10

    Галина111 вне форума


    Пришел за помощью


    По умолчанию Re: Передача файла, используя HTTP POST запрос.

    После произведенных действий с сертификатом — теперь выдает другую ошибку
    {Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Несоответствие типов (параметр номер ‘1’). И это правильно.
    Я делаю
    ИмяФайла = ФайлРезультат;
    ИмяПостФайла = ПостФайл;
    ФайлОтправки = Новый Файл(ИмяПостФайла);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Разм� �р());
    Заголовки = Новый Соответствие();
    Заголовки.Вставить(«Content-Type», «application/x-www-form-urlencoded»);
    Заголовки.Вставить(«Content-Lenght», РазмерФайлаОтправки);
    Попытка
    Соединение.ОтправитьДляОб� �аботки(ФайлОтправки,ИмяФа� �ла);
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки
    ОтправитьДЛяОбработки(HTTPЗ� �прос, ФайлРезультата)
    Теперь не понимаю — как сделать этот HTTP-запрос.


Добрый день! Возникли проблемы при попытке отправки запроса по протоколу HTTPS на удаленный сервер. Отправку делаю так: … Соединение = Новый HTTPСоединение(ИмяСервера, , , , , Истина); … Возникает ошибка: «Ошибка работы с Интернет: SSL connect error». Сертификат сервера и корневой сертификат установлены. Серверный сертификат соответствует имени сервера. Через браузер по HTTPS на сервер заходит без ошибок. Пробовал манипуляции с файлом «cacert.pem» как написано здесь , не помогло. Пробовал на версиях 1С:Предприятия 8.2.14.540 и 8.2.15.294.

Ответ не в тему, но если ничего не получится, посмотри в сторону WinHTTP

Хотелось бы сделать без использования COM-объектов. Как я понимаю, из написаного здесь , все возможно сделать с помощью HTTPСоединения. Такое ощущение, что я не дохожу до проблем описанных в указанном топике.

а ты уверен что надо использовать ОтправитьДляОбработки а не Записать ?

Судя по хелпу для отправки POST’а надо использовать именно ОтправитьДляОбработки: Синтаксис:

давай-давай. Сам убил на это две недели, второй жизни к сожалению не имею. Для сведения: на WinHTTP уже больше года как работает, не только с серверным сертификатом, но и с клиентским

Сделал на WinHTTP, спасибо за совет.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

0

04.09.2012 — 14:20


Есть два терминальных сервера.
На одном следующий код отрабатывает нормально:

HTTP = Новый HTTPСоединение(Сервер,,Пользователь,Пароль,,Истина );
HTTP.Получить(АдресРесурсов, ИмяФайла);

на другом валится с ошибкой Ошибка работы с Интернет: SSL connect error

— и на том, и на другом сервере в IE после ввода логина/пароля никаких ошибок не возникает.

— простейшая обработка с ПолемHTMLДокумента на форме также пускает и в том, и в другом случае.

— файлы сертификатов в BINе вроде как одинаковые.

версия платформы и в том, и в другом случае 8.2.13

куда еще копать?
как заставить работать этот код и там, и там?

1

05.09.2012 — 11:50

up что ль

2

05.09.2012 — 12:46

Разные ОСи стоят на терминалах?

3

05.09.2012 — 12:51

Помню как-то искал про это инфу:
http://itland.ru/forum//index.php?sh…dpost&p=102128

в итоге обошлись вообще без HTTPСоединение и плясок с бубном, просто скриптом
wget —no-check-certificate <адрес>

4

05.09.2012 — 13:15

Цитата:

Сообщение от android Посмотреть сообщение

Разные ОСи стоят на терминалах?

одинаковые win2008server

Цитата:

Сообщение от android Посмотреть сообщение

в итоге обошлись вообще без HTTPСоединение и плясок с бубном, просто скриптом

хочется все же понять из-за чего…

Добрый день!

Пожалуйста, объясните почему, подскажите как и укажите на ошибки. Вот код подключения к Вашему API:

HTTPЗапрос = Новый HTTPЗапрос();

HTTPЗапрос.АдресРесурса = «/api/v2/clean»;

HTTPЗапрос.Заголовки.Вставить(«Content-Type», «application/json»);

HTTPЗапрос.Заголовки.Вставить(«Authorization», «Token » + Token);

HTTPЗапрос.Заголовки.Вставить(«X-Secret», Secret);

HTTPЗапрос.Заголовки.Вставить(«charset», «UTF-8»);

HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(ИмяВременногоФайла));//во временном файле строка вида: { «structure»: [ «ADDRESS» ], «data»: [ [ «Россия, Свердловская область, Шалинский городской округ, поселок Сарга, Россия» ] ] }

Соединение = Новый HTTPСоединение(«dadata.ru»,,,, Новый ИнтернетПрокси,, Новый ЗащищенноеСоединениеOpenSSL);

ОтветHTTP = Соединение.ВызватьHTTPМетод(«POST», HTTPЗапрос);

Проблема в том, что со временем появляется ошибка вида:

Ошибка при вызове метода контекста (ВызватьHTTPМетод)
ОтветHTTP = Соединение.ВызватьHTTPМетод(«POST», HTTPЗапрос);
по причине:
Ошибка работы с Интернет: Ошибка инициализации SSL-соединения

То есть запросы могут проходить нормально и получать полноценный ответ, а потом через некоторое время начинают сыпаться ошибки. Подскажите куда смотреть и на что обратить внимание — хотим с Вами интегрироваться, но стабильности получить не удается. Тут явно что то с SSL — может явно как то Ваши сертификаты надо подсовывать 1С. но откуда их брать или…во общем помоги пожалуйста.

Возможно, вам также будет интересно:

  • 1с ошибка при установке значения атрибута контекста объект
  • 1с ошибка при установке значения атрибута контекста имякоманды
  • 1с ошибка при установке значения атрибута контекста value
  • 1с ошибка при установке блокировки
  • 1с ошибка при удалении объекта

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии