NeoSeo Help 1 Опубликовано: 10 июня 2021 Опубликовано: 10 июня 2021 Что делать, если при переходе на протокол https, 1С:Предприятие перестает подключаться к Интернет-магазину {SEO-Mагазин}, OpenCart 2.х, 3.х, ocStore Работая над модулем “Обмен данными” мы нашли несколько вариантов решения этой проблемы. 1. Остаться на http Нужно оставить http конкретно для ссылки обмена, а весь сайт на https. Но если просто взять и использовать http ссылку в настройке обмена, то ничего не произойдет, поскольку будет выполнена 301-я переадресация на ссылку с https. Поэтому, нужно добавить исключение на ссылку для обмена на обслуживание по протоколу http. 1.1. Можно самостоятельно добавить исключение на ссылку обмена На стороне nginx делаем следующее: server { listen *:80; server_name www.{domain} {domain}; location /export/neoseo_exchange1c.php { client_max_body_size 132m; // тут мы напрямую передаем управление за апач proxy_pass http://127.0.0.1:88/export/neoseo_exchange1c.php; include /etc/nginx/proxy_params; } location / { return 301 https://$host$request_uri; } } Вариант для .htaccess выглядит следующим образом: RewriteEngine On RewriteBase / RewriteCond %{HTTP:SSL} !=1 [NC] RewriteCond %{REQUEST_URI} !^export/neoseo_exchange1c.php RewriteRule ^([^?]*) https://demo.neoseo.com.ua/$1 [R=301,L] Для того, чтобы работали правила прописанные в .htaccess необходимо отключить переадресацию с http на https на хостинге. 1.2. Можно попросить хостера помочь с настройкой исключений Если вы не разбираетесь в .htaccess или конфигурациях nginx, попросите хостера почитать эту ссылку и настроить ваш хостинг так, чтобы ссылка для обмена не редиректилась на https. 2. Подружиться с https 2.1. Доработать 1С:Предприятие Если у вас есть возможность заглянуть в конфигуратор 1С:Предприятие, то можете отыскать там такие строчки: Соединение = Неопределено; Попытка Соединение = Новый HTTPСоединение( ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, ПараметрыПодключения.ЗащищенноеСоединение ); Исключение ДобавитьОписаниеОшибки(ОписаниеОшибки, ОписаниеИсключительнойОшибки( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось установить соединение с сервером %1:%2. Проверьте правильность адреса сервера, порт, имя пользователя и пароль.'"), ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт))); Соединение = Неопределено; Конецпопытки; и заменить на эти Соединение = Неопределено; ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); //as_не типовое для работы по https Попытка Соединение = Новый HTTPСоединение( ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, , ?(ПараметрыПодключения.ЗащищенноеСоединение, ssl, Неопределено) ); Исключение ДобавитьОписаниеОшибки(ОписаниеОшибки, ОписаниеИсключительнойОшибки( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось установить соединение с сервером %1:%2. Проверьте правильность адреса сервера, порт, имя пользователя и пароль.'"), ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт))); Соединение = Неопределено; После этого ссылка с https должна работать. 2.2. Подложить сертификат в 1С:Предприятие Также можно попробовать подложить сертификат в саму 1С:Предприятие. Делается это следующим образом: Для начала надо добавить сертификат в хранилище сертификатов в 1С:Предприятие в папке bin файл cacert.pem . 1. Качаем подходящий дистрибутив 2. После установки нужно указать переменную, открываем командную строку под админом и вводим команду set OPENSSL_CONF=D:\OpenSSL-Win32\bin\openssl.cfg После этого программа начинает работать 3. В браузере открываем URL где можно посмотреть сертификат, открываем просмотр цепочки сертификатов. В нашем случае использовался Firefox, поэтому дальше будут описываться действия для него. Открываем сертификат - Подробнее. 4. Сохраняем каждый сертификат из цепочки по 2 раза в разных форматах Лучше использовать короткие понятные пути. 1й формат 4.1 Экспортировать, выбираем тип файла Сертификат X.509 в формате PEM (*.crt:*.pem) повторяем для всех сертификатов цепочки 2й формат 4.1 Экспортировать, выбираем тип файла Сертификат X.509 в формате DER (*.der) повторяем для всех сертификатов цепочки Далее открываем командную строку вводим команду, переходим в папку с Open ssl cd c:\OpenSSL-Win64\bin Далее формируем подпись c:\OpenSSL-Win64\bin>openssl x509 -inform der -in D:\p.der -out D:\textcert.pem -text -fingerprint -md5 На экране отображается сгенерированная подпись и сертификат Через пометить выбираем полученный результат, копируем и добавляем в конец файла C:\Program Files (x86)\1cv8\8.3.5.1460\bin\cacert.pem Добавленный результат форматируем Делаем заголовок Имя для заголовка лучше брать из добавляемого сертификата Просмотр сертификата - Выбираем сертификат - Внизу поле субъект CN = Symantec Class 3 EV SSL CA - G3 из него забираем заголовок Symantec Class 3 EV SSL CA - G3 переносим MD под заголовок Получается: Symantec Class 3 EV SSL CA - G3 MD5 Fingerprint=DF:51:CE:65:BC:43:F9:1B:3E:1E:CF:48:AB:23:36:25 остальное оставляем внизу Далее блокнотом открываем сохраненный сертификат в формате *.crt, копируем его содержание Вставляем в конец файла cacert.pem Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Рекомендованные сообщения