Почему после обновления 1С не загружаются курсы валют и возникает ошибка проверки сертификата?

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

После очередного обновления конфигурации «1С:Бухгалтерия предприятия» пользователи часто сталкиваются с ситуацией, когда регламентное задание по загрузке курсов валют завершается с ошибкой — для оперативного контроля есть мониторинг регламентных заданий с уведомлениями в Telegram. При попытке загрузить курсы вручную система выдает сообщение: «Не удалось установить HTTP-соединение с сервером currencyrates.1c.ru:443 по причине: Удаленный узел не прошел проверку: Не удалось выполнить проверку отзыва сертификата». Давайте разберемся, почему так происходит и как это исправить.

Проблема, как правило, не связана с отсутствием доступа в интернет как таковым. Вы можете успешно открывать сайты в браузере с сервера 1С, и даже другие базы на том же сервере могут загружать курсы без проблем. Ошибка кроется в изменениях, внесенных в Библиотеку стандартных подсистем (БСП) в новых релизах конфигураций.

Выясняем причину: усиление безопасности в 1С

Основная причина сбоя — усиление политики безопасности при установлении защищенных SSL/TLS-соединений. В последних версиях БСП разработчики 1С изменили логику работы функции, отвечающей за создание защищенного соединения. Проанализируем ситуацию подробнее.

Проблема находится в общем модуле ОбщегоНазначенияКлиентСервер, в функции НовоеЗащищенноеСоединение. В обновленной версии конфигурации вызов этой функции выглядит так:


Возврат Новый ЗащищенноеСоединениеOpenSSL(
    СертификатКлиента, 
    СертификатыУдостоверяющихЦентров, 
    РежимПроверкиОтзываTLSСертификатаСервера.Строгий
);

Ключевым здесь является последний, новый параметр: РежимПроверкиОтзываTLSСертификатаСервера.Строгий. Он заставляет платформу 1С при обращении к серверу курсов валют выполнять обязательную проверку статуса отзыва SSL-сертификата этого сервера. Это дополнительный шаг безопасности, который проверяет, не был ли сертификат удаленного сайта скомпрометирован и отозван удостоверяющим центром.

Для выполнения этой проверки серверу 1С необходимо обратиться к специальным серверам в интернете — спискам отзыва сертификатов (CRL) или службам статуса онлайн-сертификатов (OCSP). Если по какой-либо причине сервер 1С (а точнее, процесс rphost.exe, запущенный от имени службы) не может достучаться до этих ресурсов, проверка проваливается, и 1С разрывает соединение с ошибкой.

Возможные причины сбоя проверки отзыва сертификата:

  1. Сетевые ограничения. Межсетевой экран (firewall), прокси-сервер или другое сетевое оборудование блокирует доступ к серверам CRL/OCSP.
  2. Ограничения учетной записи. Служба «Агент сервера 1С:Предприятия» запущена от имени учетной записи (даже доменной), у которой нет прямого доступа в интернет для выполнения таких проверок.
  3. Устаревшие корневые сертификаты. На сервере с 1С могут быть устаревшие или отсутствовать необходимые корневые и промежуточные сертификаты, что мешает построению цепочки доверия.

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

Решение 1: Изменение кода конфигурации (быстрый способ)

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

Рассмотрим по шагам, что нужно сделать:

  1. Откройте конфигурацию в режиме «Конфигуратор».
  2. Найдите в дереве метаданных общий модуль ОбщегоНазначенияКлиентСервер.
  3. Откройте модуль и найдите в нем функцию НовоеЗащищенноеСоединение.
  4. Найдите строку кода, которая возвращает новое защищенное соединение.

    Исходный код:

    
    Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров, РежимПроверкиОтзываTLSСертификатаСервера.Строгий);
    
  5. Замените значение РежимПроверкиОтзываTLSСертификатаСервера.Строгий на РежимПроверкиОтзываTLSСертификатаСервера.НеПроверять.

    Исправленный код:

    
    Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров, РежимПроверкиОтзываTLSСертификатаСервера.НеПроверять);
    

    Также можно просто удалить третий параметр, так как значение НеПроверять используется по умолчанию:

    
    Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
    
  6. Сохраните изменения в конфигурации и обновите конфигурацию базы данных (клавиша F7).

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

Решение 2: Настройка на уровне платформы 1С (без изменения конфигурации)

Если вы не хотите или не можете изменять типовую конфигурацию, есть альтернативный способ, который работает на уровне настроек платформы 1С.

Можно указать платформе игнорировать ошибки при проверке цепочки отзыва сертификатов. Для этого необходимо отредактировать конфигурационный файл conf.cfg.

  1. На сервере 1С перейдите в каталог установки платформы, в папку bin\conf. Например: C:\Program Files\1cv8\8.3.25.1374\bin\conf.
  2. Найдите файл conf.cfg. Если его нет, создайте его.
  3. Добавьте в этот файл следующую строку:
    
    IgnoreServerCertificatesChainRevocationSoftFail=true
    
  4. Сохраните файл и перезапустите службу «Агент сервера 1С:Предприятия», чтобы изменения вступили в силу.

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

Решение 3: Системная настройка (рекомендуется для системных администраторов)

Это самый правильный, но и самый сложный путь, который заключается в устранении первопричины, а не симптомов. Системному администратору необходимо обеспечить серверу 1С возможность корректно выполнять проверку отзыва сертификатов.

Что нужно проверить и настроить:

  1. Доступ в интернет. Убедитесь, что для учетной записи, от имени которой запущена служба сервера 1С, разрешен доступ по протоколу HTTPS (порт 443) к ресурсам в интернете.
  2. Открытие доступа к серверам CRL/OCSP. Попросите системного администратора выяснить, к каким именно URL-адресам обращается система для проверки сертификата currencyrates.1c.ru, и открыть к ним доступ на межсетевом экране или прокси-сервере. Эту информацию можно получить, проанализировав свойства сертификата в браузере или используя системные журналы (например, CAPI2 в "Просмотре событий" Windows).
  3. Обновление корневых сертификатов. Убедитесь, что на сервере установлены актуальные корневые и промежуточные сертификаты. Обычно это происходит автоматически через Windows Update, но в изолированных сетях может потребоваться ручная установка.

Выбор решения зависит от вашей ситуации: если нужно быстро восстановить работу — подойдет изменение кода или файла conf.cfg. Если вы стремитесь к максимально безопасной и правильной конфигурации системы — стоит привлечь системного администратора для настройки сетевых доступов.

← На главную