Как устранить ошибку «Удаленный узел не прошел проверку» при подключении интернет-поддержки 1С через веб-сервер?

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

При работе с программными продуктами 1С через веб-сервер (Apache или IIS) пользователи часто сталкиваются с проблемой: при попытке авторизоваться в портале 1С:ИТС (portal.1c.ru) система выдает ошибку «Удаленный узел не прошел проверку». Это происходит даже в том случае, если логин и пароль введены верно, а интернет-соединение на сервере активно. Проблема локализуется в журнале регистрации как ошибка работы с ресурсом https://login.1c.ru/rest/public/user/auth.

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

Разбор причины возникновения ошибки

Когда 1С работает через веб-клиент или тонкий клиент через веб-сервер, программный код, отвечающий за соединение с сервисами 1С, выполняется на стороне сервера. Ошибка «Удаленный узел не прошел проверку» (Remote host failed verification) означает, что защищенное соединение (HTTPS) не может быть установлено, так как сервер 1С (или веб-сервер, под которым запущена база) не доверяет SSL-сертификату узла login.1c.ru.

Рассмотрим основные факторы, влияющие на это:

  1. Контекст учетной записи: Веб-сервер (например, Apache) часто запускается от имени системной учетной записи (Local System). У этой записи может не быть доступа к актуальным хранилищам сертификатов или она может иметь специфические ограничения на исходящие запросы.
  2. Устаревшие корневые сертификаты: Операционная система сервера не знает о доверенном центре сертификации, который выдал сертификат для 1c.ru.
  3. Протоколы безопасности: Сервер может пытаться использовать устаревшие протоколы TLS 1.0 или 1.1, которые уже не поддерживаются современными сервисами авторизации.

Шаг 1. Проверка контекста выполнения на сервере

Первым делом нам необходимо выяснить, проходит ли проверка SSL в контексте сервера. Для этого создадим простую внешнюю обработку и выполним код &НаСервере. Мы попробуем установить соединение с любым защищенным сайтом.

Проанализируем следующий пример кода:


&НаСервере
Процедура ПроверитьСоединениеНаСервере()
    НТТР = Новый HTTPСоединение("login.1c.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
    Запрос = Новый HTTPЗапрос("/rest/public/user/auth");
    Попытка
        Ответ = НТТР.Получить(Запрос);
        Сообщить("Соединение установлено, код ответа: " + Ответ.КодСостояния);
    Исключение
        Сообщить("Ошибка: " + ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

Если этот код возвращает ошибку «Удаленный узел не прошел проверку», значит, проблема действительно в настройках безопасности операционной системы сервера или в параметрах службы веб-сервера.

Шаг 2. Настройка учетной записи службы веб-сервера

Чаще всего проблема решается изменением пользователя, от имени которого работает служба Apache или IIS. По умолчанию служба работает под «Local System», у которой нет «профиля пользователя» в привычном понимании, включая настройки прокси и личные хранилища сертификатов.

Разберем порядок действий для настройки:

  1. Создайте в операционной системе Windows отдельного пользователя (например, 1c_service) и добавьте его в группу администраторов или дайте необходимые права на папку с платформой 1С и веб-сервером.
  2. Важный момент: Обязательно зайдите в систему под этим пользователем интерактивно (через RDP или локально), чтобы Windows создала структуру папок профиля.
  3. Откройте Internet Explorer или Microsoft Edge от имени этого пользователя и перейдите на страницу https://login.1c.ru. Если браузер выдает предупреждение о сертификате, подтвердите доверие или установите недостающие корневые сертификаты.
  4. Откройте «Службы» (services.msc), найдите службу веб-сервера (например, Apache2.4), зайдите в «Свойства» -> «Вход в систему» и укажите данные созданного пользователя.
  5. Перезапустите службу веб-сервера.

Шаг 3. Обновление корневых сертификатов (Root CA)

Если смена пользователя не помогла, проверим актуальность цепочки сертификатов. 1С использует системное хранилище Windows для проверки SSL. Если ваш сервер давно не обновлялся, в нем могут отсутствовать корневые сертификаты новых удостоверяющих центров.

Выясним, как обновить сертификаты вручную:

Шаг 4. Использование файла cacert.pem в 1С

В некоторых случаях платформа 1С версии 8.3.16 и выше может игнорировать системное хранилище и требовать явного указания файла сертификатов cacert.pem. Этот файл содержит список доверенных центров сертификации в формате OpenSSL.

Разберем, как принудительно обновить этот файл:

  1. Найдите файл cacert.pem в папке установленной платформы (обычно путь выглядит так: C:\Program Files\1cv8\8.3.x.x\bin\conf\).
  2. Замените его на актуальный файл (его можно скачать с официального сайта curl или извлечь из последних релизов платформы).
  3. Также можно прописать путь к файлу сертификатов в файле conf.cfg, добабив строку CertificatesContext=..., но для типовых решений достаточно обновления файла в папке bin\conf.

Шаг 5. Проверка протоколов TLS

Современные сервисы 1С требуют поддержки протокола TLS 1.2. Если ваша серверная ОС (например, Windows Server 2008 R2 или 2012) не настроена на использование TLS 1.2 по умолчанию, соединение будет обрываться.

Проанализируем настройки реестра. Убедитесь, что в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client параметры Enabled и DisabledByDefault установлены корректно (Enabled = 1, DisabledByDefault = 0).

Заключение и «магическое» решение

Как показывает практика и обсуждения специалистов, в ряде случаев после проведения всех настроек (смена пользователя, установка сертификатов) система все равно может выдавать ошибку до тех пор, пока не будет выполнена полная перезагрузка сервера. Это связано с тем, что компоненты сетевого стека Windows и службы веб-сервера кэшируют результаты проверки сертификатов и состояния сессий.

Резюмируем: если вы столкнулись с ошибкой «Удаленный узел не прошел проверку» при работе через Apache/IIS, проверьте права пользователя службы, обновите корневые сертификаты Windows и не забудьте перезагрузить сервер после внесения изменений.

← На главную