Найти в Дзене
Про 1С

Ошибка работы с Интернет: Удаленный узел не прошел проверку Получение данных с сервера: Получен пустой ответ сервера.

Добрый день.
В этой статье покажу Вам, как я решал вопрос восстановление обмена между УПП 1.3 и интернет-магазином на платформе Битрикса.

В случае, если у вас в какой-то момент остановился обмен между базой и интернет-магазином.
Перестали приниматься заказы с интернет-магазина в онлайн-режиме. Перестали выгружаться цены, товары и .д. и т.п. Эта статья может помочь найти решение в вашей подобной проблеме.

Сразу вперёд забегу и скажу, что в конечном итоге, в моем случае причиной проблем был перевыпуск нового SSL-сертификата для нашего интернет-магазина.

И так описываю ситуацию.

Сегодня ко мне обратился один из наших менеджеров интернет-магазина и говорит перестали в базу попадать заказы с интернет-магазина, уведомления приходят на почту о создании заказов, а самих заказов нет.

У нас система учета построена на конфигурации "1С Управление производственным предприятием 1.3." УПП 1.3.

Запускаю конфигурацию, сразу-же иду в список настроек обменов

-2

Выбираю проблемный обмен, захожу, в его настройки

-3

-4

Перехожу в монитор обменов

-5

Вывожу красноту красную :)

Переключаюсь на закладку "История"

-6

Вижу что начались проблемы в районе 12 часов дня 24.04.2023.

Ошибка следующего содержания

-7
Выгружено заказов: 4
Не удалось установить соединение с сервером. Авторизация пользователя не выполнена.
Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль,
а также настройки подключения к Интернет.
Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: Удаленный узел не прошел проверку
Получение данных с сервера: Получен пустой ответ сервера.
Обмен не выполнен
Обмен заказами завершен с ошибками!!!

Пробую протестировать соединение с интернет-магазином

-8

Ошибка выглядит вот так

Не удалось установить соединение с сервером. Авторизация пользователя не выполнена.
Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль,
а также настройки подключения к Интернет.
Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: Удаленный узел не прошел проверку
Получение данных с сервера: Получен пустой ответ сервера.
Обмен не выполнен

Подобные ошибки для меня не новые, но каждый раз когда они возникают как-то их решал и замечательно забывал вариант решения и в следующий раз опять приходилось решать ребус. Помню, только тот момент, что это проблема была связана с ssl-сертификатом, установленном на сайте. В этот раз решил это дело законспектировать :)

В моем примере я использую браузер Chrome, в других браузерах принцип действий будет аналогичен.

Сразу-же перехожу на сайт интернет-магазина и пробую посмотреть какой ssl-сертификат действует сейчас. Нажимаю на кнопку в виде замка, слева от адресной строки браузера.

-9

Открывается выпадающее меню

-10

Выбираем первый пункт "Безопасное подключение"

Далее "Действительный сертификат"

-11

После чего открывается окно с параметрами ssl-сертификата

-12

Из полученных данных я ещё раз убедился в том, что проблема обмена напрямую связана, с началом действия нового ssl-сертификата.

т.е. 24.04.2023 в 11:58:19 начинает действовать новый ssl-сертификат и после этого у меня нарушается обмен.

Из практики, данная проблема возникает в нескольких случаях:

  • Когда переустанавливаешь сервер 1С
  • Когда переходишь на другой релиз платформы
  • Когда на сайте меняется ssl-сертификат

Типичной ошибкой можно отнести как минимум к таким конфигурациям как УПП 1.3, УТ 10.3, КА 1.2 и я думаю что скорее всего ко всем конфигурациям построенных на обычных формах

Теперь стоял главный вопрос. Как эту ситуацию исправить.

Перелопатил кучу статей как с официального ресурса ИТС, так и посмотрел как другие люди решают подобную задачу.

Из прошлого помню только то, что задача состоит из нескольких этапов

  • Сохранить с сайта sss-сертификаты
  • Конвертировать эти сертификаты в формат, который поддерживается при размещении в файл cacert.pem
  • Поместить конвертированные сертификаты в файл cacert.pem, который расположен к каталоге "bin", текущей версии платформы.
  • Протестировать на обычной файловой демобазе
  • В случае успеха теста заменить файл cacert.pem на сервере 1с

Сохранение ssl-сертификаты с сайта

Необходимо запустить браузер EDGE, либо обычный стандартный Exploler, в других браузерах просто не пробовал.

ввести в адресной строке, адрес сайта, нажать enter

-13
-14

В открывшемся окне, переходим на закладку "Подобные сведения"

-15

После чего выбираем по очереди ветки сертификата и нажимаем на кнопку "Экспорт..."

После чего открывается окно сохранения сертификата, где присваиваем имя файлу с сертификатом, для примера я называл v0, v1, v2

Обязательно сохраняем только в этом формате

-16

В итоге у вас должно получиться три файла с расширением der

-17

Конвертация сертификатов в формат, который поддерживается при размещении сертификатов в файл cacert.pem

После чего переходим на сайт https://slproweb.com/products/Win32OpenSSL.html ну или подобный

и скачиваем себе дистрибутив, согласно тому какая разрядность на вашем компьютере

-18

Я скачал первый EXE, т.к. у меня стоит 64-х разрадная Windows

Далее устанавливаем программу

Всё стандартно, единственно чтобы потом упростить писать командные строки я установил программу в каталог C:\OpenSSL

-19
-20

Далее запускаем командную строку.

Нажимаем на кнопку поиска, набираем текст cmd. После чего запускаем командную строка от имени администратора

-21
-22

Теперь в командной строке вводим

cd /d c:\OpenSSL\bin

-23

тем самым мы попадаем в каталог программы "Win64 OpenSSL v3.1.0 Light"

После чего отрабатываем три командные строки конвертации сертификатов

openssl x509 -inform der -in C:\temp\SSL\v2\v0.der -out C:\temp\SSL\v2\v0.pem -text -fingerprint -md5


openssl x509 -inform der -in C:\temp\SSL\v2\v1.der -out C:\temp\SSL\v2\v1.pem -text -fingerprint -md5


openssl x509 -inform der -in C:\temp\SSL\v2\v2.der -out C:\temp\SSL\v2\v2.pem -text -fingerprint -md5

После того как это командные строки отработали

в нашем каталоге с сертификатам создались три файла с расширением pem

-24

Каждый из созданных файлов содержит примерно такой текст

-25

После этого содержимое трех созданных файлов необходимо объединить в один, путем простого открытия файлов обычным встроенным текстовым редактором. Я взял и содержимое всех файлов скопировал в файл v0.pem

В итоге у нас появился файл с подготовленными сертификатами для того, чтобы эту информацию можно было разместить в файл cacert.pem каталога BIN текущего релиза и версии платформы. У меня на текущий момент релиз платформы 8.3.22.1851, клиент проверяется 32-х разрядный

Этап конвертации сертификатов окончен.

Поместить конвертированные сертификаты в файл cacert.pem, который расположен к каталоге "bin", текущей версии платформы.

В итоге возвращаемся в каталог текущего релиза платформы под которым мы будем тестировать новый вариант файла cacert.pem

Делаем копию файла cacert.pem, в случае если что-то пойдет не так, всегда можно вернуть исходный вариант файл

-26

После чего из каталога платформы копируем файл cacert.pem, затем вставляем например в другой каталог,

-27

потом вносим в конец файла сформированный наш фрагмент с сертификатами сайта.

После добавления в конец файла cacert.pem наших сертификатов, копируем получившийся файл в каталог с платформой текущего релиза

У меня файл менеджер спросил, что нужно перезаписать существующий файл. Соглашаемся с правами админа

-28
-29

После чего я запустил 32-разрядную файловую демоверсию версию УПП 1.3. внес аналогичные параметры подключения к сайту интернет-магазина.

И проверил подключение

в итоге получил вот такую красоту

-30

Демобаза показала. что подключение прошло успешно. Это говорит о том, что полученный вариант с сертификатами нашего сайт получился.

Теперь можно проверить этот файл на текущей, боевой версией, которая работает у нас в клиент-серверной версии

Тест подключения также прошел успешно.

Этап тестирования добавленных сертификатов, можно считать завершённым.

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

Это необходимо сделать в том случае если у вас есть к примеру онлайн обмены с сайтом и другие процедуры, которые отрабатывают в серверном варианте.

Это сделать можно простым способом, зайти на сервер 1С, перейти в список службу, найти агента сервера 1С, название имени службы дает понять какой вариант сервера используется в вашем случае

-31

Далее заменил файл со своей машины на сервере 1С, предварительно скопировав оригинальный вариант файла cacert.pem.

-32

После того как мы поменяли файл cacert.pem на сервере 1С, возвращаемся в настройки обмена с интернет-магазином и видим, что обмен в итоге восстановлен

-33

Вопрос с восстановлением обмена с интернет-магазином компании решён.

Более подробный ход событий в видео ниже.

Буду рад если кому-то это статья поможет решить свою проблему с интеграцией между конфигурацией 1С и интернет-ресурсом с ssl-сертификатом.

Всем спасибо, ктор дочитал текст до конца :)...