При работе с программными продуктами 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.
Рассмотрим основные факторы, влияющие на это:
1c.ru.Первым делом нам необходимо выяснить, проходит ли проверка SSL в контексте сервера. Для этого создадим простую внешнюю обработку и выполним код &НаСервере. Мы попробуем установить соединение с любым защищенным сайтом.
Проанализируем следующий пример кода:
&НаСервере
Процедура ПроверитьСоединениеНаСервере()
НТТР = Новый HTTPСоединение("login.1c.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/rest/public/user/auth");
Попытка
Ответ = НТТР.Получить(Запрос);
Сообщить("Соединение установлено, код ответа: " + Ответ.КодСостояния);
Исключение
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Если этот код возвращает ошибку «Удаленный узел не прошел проверку», значит, проблема действительно в настройках безопасности операционной системы сервера или в параметрах службы веб-сервера.
Чаще всего проблема решается изменением пользователя, от имени которого работает служба Apache или IIS. По умолчанию служба работает под «Local System», у которой нет «профиля пользователя» в привычном понимании, включая настройки прокси и личные хранилища сертификатов.
Разберем порядок действий для настройки:
1c_service) и добавьте его в группу администраторов или дайте необходимые права на папку с платформой 1С и веб-сервером.https://login.1c.ru. Если браузер выдает предупреждение о сертификате, подтвердите доверие или установите недостающие корневые сертификаты.Apache2.4), зайдите в «Свойства» -> «Вход в систему» и укажите данные созданного пользователя.Если смена пользователя не помогла, проверим актуальность цепочки сертификатов. 1С использует системное хранилище Windows для проверки SSL. Если ваш сервер давно не обновлялся, в нем могут отсутствовать корневые сертификаты новых удостоверяющих центров.
Выясним, как обновить сертификаты вручную:
certutil -urlcache * delete в командной строке от имени администратора, чтобы очистить кэш отозванных сертификатов.В некоторых случаях платформа 1С версии 8.3.16 и выше может игнорировать системное хранилище и требовать явного указания файла сертификатов cacert.pem. Этот файл содержит список доверенных центров сертификации в формате OpenSSL.
Разберем, как принудительно обновить этот файл:
cacert.pem в папке установленной платформы (обычно путь выглядит так: C:\Program Files\1cv8\8.3.x.x\bin\conf\).conf.cfg, добабив строку CertificatesContext=..., но для типовых решений достаточно обновления файла в папке bin\conf.Современные сервисы 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 и не забудьте перезагрузить сервер после внесения изменений.