Как исправить ошибку «SSL connect error» в поле HTML-документа 1С при использовании движка WebKit?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

С выходом платформы 1С:Предприятие версии 8.3.15 произошли глобальные изменения в работе встроенного браузера. Разработчики отказались от использования движка Internet Explorer (MSHTML) в пользу более современного и быстрого WebKit. Однако это нововведение принесло и ряд технических сложностей, наиболее частой из которых стала ошибка «SSL connect error» при попытке открыть защищенные (HTTPS) страницы в объекте ПолеHTMLДокумента.

Проанализируем ситуацию: WebKit в реализации 1С обладает собственным механизмом работы с сетевыми запросами и сертификатами, который существенно отличается от системных настроек Windows, к которым мы привыкли. В этой статье мы подробно разберем, как заставить новый движок «доверять» вашим сертификатам и корректно работать через прокси-серверы.

Причина 1: Конфликт настроек прокси-сервера (WinHTTP vs WinInet)

Разберем важный технический нюанс. Старый движок (IE) использовал системные настройки прокси, известные как WinInet (те, что настраиваются через «Свойства обозревателя»). Новый WebKit в 1С ориентируется на параметры WinHTTP. Если в вашей организации используется прозрачное проксирование или Kerio Control, настройки могут конфликтовать.

Рассмотрим решение через сброс параметров WinHTTP. Для этого выполним следующие шаги в командной строке (cmd), запущенной от имени администратора:

netsh winhttp reset proxy

Эта команда сбрасывает специфические настройки прокси для системных служб. Во многих случаях этого достаточно, чтобы 1С начала использовать системный шлюз по умолчанию без ошибок шифрования. Если ваша сеть требует явного указания прокси, убедитесь, что вы прописали его именно через netsh winhttp set proxy, а не только в браузере.

Причина 2: Использование системного хранилища сертификатов

Выясним, почему WebKit может не видеть ваши самоподписанные сертификаты (например, от Kerio или корпоративного CA). По умолчанию WebKit может игнорировать доверенные корневые центры сертификации Windows. Начиная с релизов 8.3.20+, в платформе появился специальный флаг, позволяющий принудительно использовать системное хранилище.

Проанализируем файл conf.cfg, который обычно находится в каталоге C:\Program Files\1cv8\conf (или аналогичном пути для вашей установки). Нам необходимо добавить туда следующий параметр:

EnableSystemCertificates=1

После добавления этой строки и перезапуска 1С, движок WebKit начнет обращаться к хранилищу сертификатов Windows (Root/Trusted Publishers), что позволит ему «увидеть» установленные в системе сертификаты фильтрации трафика.

Причина 3: Проблема с проверкой отозванных сертификатов

Иногда ошибка «SSL connect error» возникает из-за того, что WebKit пытается проверить цепочку отзывов сертификатов, но не может достучаться до серверов проверки (CRL) из-за ограничений безопасности. В этом случае соединение обрывается по таймауту или ошибке безопасности.

Для решения этой проблемы попробуем добавить специальный параметр в конфигурационный файл. Это позволит платформе игнорировать ошибки проверки цепочки, если сервер проверки недоступен (soft fail):

IgnoreServerCertificatesChainRevocationSoftFail=true

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

Причина 4: Ручное добавление сертификатов в файл cacert.pem

Если системные методы не помогают, рассмотрим более «радикальный» способ — внедрение вашего сертификата непосредственно в доверенное хранилище самой платформы 1С. У каждой установленной версии платформы есть файл cacert.pem, содержащий список доверенных центров.

Разберем этот процесс по шагам:

  1. Перейдем в папку с установленной платформой: C:\Program Files\1cv8\8.3.XX.XXXX\bin.
  2. Найдем файл cacert.pem.
  3. Экспортируем ваш самоподписанный сертификат (или сертификат Kerio/Kaspersky) в формате Base64 (PEM).
  4. Откроем cacert.pem текстовым редактором (например, Notepad++) и вставим содержимое вашего сертификата в самый конец файла.
  5. Сохраним файл (потребуются права администратора).

Важно: При обновлении версии платформы 1С этот файл будет новым, поэтому процедуру придется повторить для каждого нового релиза.

Причина 5: Вмешательство антивирусного ПО (SSL-инспекция)

Современные антивирусы, такие как Kaspersky Endpoint Security, часто используют технологию перехвата SSL-трафика для его проверки. Они подменяют сертификат целевого сайта своим собственным «на лету». WebKit может воспринимать это как попытку атаки Man-in-the-Middle.

Посмотрим, как можно диагностировать и устранить эту проблему:

  1. Попробуем временно отключить модуль «Веб-антивирус» или «Инспекция защищенных соединений».
  2. Если ошибка исчезла, необходимо добавить исполняемый файл 1cv8.exe (и 1cv8c.exe для тонкого клиента) в исключения проверки трафика.
  3. Также полезно добавить адрес проблемного ресурса в список доверенных адресов в настройках антивируса.

Особенности работы с ГОСТ-шифрованием (ЕГРЗ, Электронный бюджет)

Если вы столкнулись с ошибкой при работе с государственными порталами (например, ЕГРЗ), то проблема гораздо глубже. Стандартный движок WebKit не поддерживает российские криптографические алгоритмы ГОСТ напрямую. Использование Континент TLS или КриптоПро не всегда прозрачно для WebKit.

В такой ситуации проанализируем возможность создания локального туннеля или использования внешнего браузера. Если ПолеHTMLДокумента не может установить соединение, попробуйте запустить страницу во внешнем браузере, который гарантированно поддерживает ГОСТ (например, Яндекс.Браузер или Chromium-Gost), используя метод:

ЗапуститьПриложение("https://egrz.ru");

Это позволит пользователю работать с ресурсом, пока разработчики 1С совершенствуют интеграцию WebKit с отечественными средствами криптозащиты.

Дополнительный параметр: Аппаратное ускорение

В редких случаях сетевая ошибка в WebKit может быть косвенно вызвана сбоем графического рендеринга, особенно в терминальных сессиях. Попробуем отключить использование GPU для отрисовки HTML, добавив параметр запуска 1С:

--disable-gpu

Хотя это чаще помогает при «белых экранах», в некоторых версиях платформы это стабилизирует работу всего движка WebKit в целом.

Подводя итог, можно сказать, что универсального решения «одной кнопкой» не существует, так как причины SSL connect error зависят от инфраструктуры. Однако последовательное применение сброса winhttp, настройки conf.cfg и проверка исключений в антивирусе решают проблему в 90% случаев.

← На главную