После очередного обновления конфигурации «1С:Бухгалтерия предприятия» пользователи часто сталкиваются с ситуацией, когда регламентное задание по загрузке курсов валют завершается с ошибкой — для оперативного контроля есть мониторинг регламентных заданий с уведомлениями в Telegram. При попытке загрузить курсы вручную система выдает сообщение: «Не удалось установить HTTP-соединение с сервером currencyrates.1c.ru:443 по причине: Удаленный узел не прошел проверку: Не удалось выполнить проверку отзыва сертификата». Давайте разберемся, почему так происходит и как это исправить.
Проблема, как правило, не связана с отсутствием доступа в интернет как таковым. Вы можете успешно открывать сайты в браузере с сервера 1С, и даже другие базы на том же сервере могут загружать курсы без проблем. Ошибка кроется в изменениях, внесенных в Библиотеку стандартных подсистем (БСП) в новых релизах конфигураций.
Основная причина сбоя — усиление политики безопасности при установлении защищенных SSL/TLS-соединений. В последних версиях БСП разработчики 1С изменили логику работы функции, отвечающей за создание защищенного соединения. Проанализируем ситуацию подробнее.
Проблема находится в общем модуле ОбщегоНазначенияКлиентСервер, в функции НовоеЗащищенноеСоединение. В обновленной версии конфигурации вызов этой функции выглядит так:
Возврат Новый ЗащищенноеСоединениеOpenSSL(
СертификатКлиента,
СертификатыУдостоверяющихЦентров,
РежимПроверкиОтзываTLSСертификатаСервера.Строгий
);
Ключевым здесь является последний, новый параметр: РежимПроверкиОтзываTLSСертификатаСервера.Строгий. Он заставляет платформу 1С при обращении к серверу курсов валют выполнять обязательную проверку статуса отзыва SSL-сертификата этого сервера. Это дополнительный шаг безопасности, который проверяет, не был ли сертификат удаленного сайта скомпрометирован и отозван удостоверяющим центром.
Для выполнения этой проверки серверу 1С необходимо обратиться к специальным серверам в интернете — спискам отзыва сертификатов (CRL) или службам статуса онлайн-сертификатов (OCSP). Если по какой-либо причине сервер 1С (а точнее, процесс rphost.exe, запущенный от имени службы) не может достучаться до этих ресурсов, проверка проваливается, и 1С разрывает соединение с ошибкой.
Возможные причины сбоя проверки отзыва сертификата:
Интересный диагностический момент: если запустить ту же информационную базу в файловом режиме на сервере, загрузка курсов, скорее всего, пройдет успешно. Это подтверждает, что проблема связана с контекстом выполнения серверного кода в клиент-серверном варианте работы.
Самый быстрый способ восстановить работоспособность — это изменить код конфигурации, чтобы отключить строгую проверку отзыва сертификата. Этот способ подходит, если у вас доработанная конфигурация, и вы можете вносить в нее изменения.
Рассмотрим по шагам, что нужно сделать:
ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение.Исходный код:
Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров, РежимПроверкиОтзываTLSСертификатаСервера.Строгий);
РежимПроверкиОтзываTLSСертификатаСервера.Строгий на РежимПроверкиОтзываTLSСертификатаСервера.НеПроверять.
Исправленный код:
Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров, РежимПроверкиОтзываTLSСертификатаСервера.НеПроверять);
Также можно просто удалить третий параметр, так как значение НеПроверять используется по умолчанию:
Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
После этих действий загрузка курсов валют должна заработать. Важно понимать, что это решение немного снижает уровень безопасности, так как вы отключаете одну из проверок подлинности удаленного сервера. Однако для такой задачи, как загрузка курсов валют, этот риск в большинстве случаев является приемлемым.
Если вы не хотите или не можете изменять типовую конфигурацию, есть альтернативный способ, который работает на уровне настроек платформы 1С.
Можно указать платформе игнорировать ошибки при проверке цепочки отзыва сертификатов. Для этого необходимо отредактировать конфигурационный файл conf.cfg.
bin\conf. Например: C:\Program Files\1cv8\8.3.25.1374\bin\conf.conf.cfg. Если его нет, создайте его.
IgnoreServerCertificatesChainRevocationSoftFail=true
Этот параметр заставит платформу не считать ошибкой ситуацию, когда проверка отзыва сертификата не удалась. Это также является компромиссом в плане безопасности, но позволяет избежать внесения изменений в конфигурацию.
Это самый правильный, но и самый сложный путь, который заключается в устранении первопричины, а не симптомов. Системному администратору необходимо обеспечить серверу 1С возможность корректно выполнять проверку отзыва сертификатов.
Что нужно проверить и настроить:
currencyrates.1c.ru, и открыть к ним доступ на межсетевом экране или прокси-сервере. Эту информацию можно получить, проанализировав свойства сертификата в браузере или используя системные журналы (например, CAPI2 в "Просмотре событий" Windows).Выбор решения зависит от вашей ситуации: если нужно быстро восстановить работу — подойдет изменение кода или файла conf.cfg. Если вы стремитесь к максимально безопасной и правильной конфигурации системы — стоит привлечь системного администратора для настройки сетевых доступов.