Открыта возможность перехода на модули с открытым кодом! Детали

Перейти к публикации

Не удалось установить соединение с сервером, протокол https


Рекомендованные сообщения

Что делать, если при переходе на протокол 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...