Как исправить ошибку проверки отзыва сертификата при обращении к ГИС МТ в 1С:Розница на веб-сервере?

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

При переводе файловой информационной базы 1С:Розница на веб-сервер для ускорения работы пользователей в локальной сети часто возникает сбой при обращении к сервисам маркировки «Честный Знак» (ГИС МТ). Платформа выдает ошибку вида: «Не удалось запросить данные ГИС МТ по причине: При отправке запроса api/v4/true-api/cdn/info возникла ошибка. Текст ошибки: HTTP-запрос не отправлен. Удаленный узел не прошел проверку: Не удалось выполнить проверку отзыва сертификата». Разберем причины такого поведения и выясним, как восстановить корректный обмен с сервисом маркировки.

Почему возникает ошибка проверки сертификата при публикации на IIS

Проанализируем архитектуру работы файловой базы через веб-сервер Microsoft IIS. В отличие от прямого подключения через тонкий клиент, при веб-публикации весь серверный код конфигурации выполняется в контексте рабочего процесса веб-сервера w3wp.exe. Это накладывает несколько системных ограничений:

  1. Контекст пула приложений IIS (ApplicationPoolIdentity): По умолчанию пул приложений функционирует под изолированной виртуальной учетной записью. У нее отключена загрузка системного профиля пользователя (параметр Load User Profile = False). В результате криптографическая подсистема Windows CryptoAPI не может инициализировать кэш списков отзыва сертификатов (CRL) и временные каталоги.
  2. Блокировка доступа к точкам CRL/OCSP: При проверке сертификата CDN-сервера ГИС МТ операционная система пытается скачать список отзыва по протоколу HTTP (порт 80). Если для служебной учетной записи или на сетевом шлюзе закрыт исходящий HTTP-трафик, проверка завершается сбоем (soft-fail).
  3. Изоляция хранилищ сертификатов: Если корневые сертификаты Национального удостоверяющего центра (Минцифры) или сертификаты ГИС МТ установлены только в личное хранилище администратора (certmgr.msc), процесс веб-сервера не имеет к ним доступа. Сертификаты должны располагаться в хранилище всей системы (certlm.msc).

Способ 1. Замена веб-сервера на Apache 2.4 (Основное быстрое решение)

Рассмотрим проверенное на практике решение проблемы. В среде Windows веб-сервер Apache 2.4 традиционно развертывается как системная служба, запускаемая под учетной записью Local System (или специально выделенной сервисной записью). В отличие от IIS, служба Apache имеет полный доступ к сетевому стеку и системному окружению Windows, что исключает ошибки подсистемы CryptoAPI при обращении к узлам ГИС МТ.

Разберем переход на Apache по шагам:

  1. Останавливаем и отключаем сайт или пул приложений в диспетчере служб IIS, чтобы освободить порты (80/443).
  2. Устанавливаем дистрибутив веб-сервера Apache 2.4 для Windows.
  3. Запускаем 1С:Предприятие от имени администратора, открываем меню Администрирование -> Публикация на веб-сервере.
  4. В поле веб-сервера выбираем Apache 2.4, указываем каталог публикации и нажимаем кнопку Опубликовать.
  5. Перезапускаем службу веб-сервера Apache и проверяем отправку запросов к CDN ГИС МТ с клиентских машин.

Способ 2. Устранение ошибки в IIS без смены веб-сервера

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

  1. Настройка параметра Load User Profile в IIS: Открываем Диспетчер служб IIS, переходим в раздел Пулы приложений. Выбираем пул, обслуживающий публикацию 1С, и нажимаем Дополнительные параметры. Находим параметр Загрузить профиль пользователя (Load User Profile) и переводим его в значение True. При необходимости в пункте Удостоверение (Identity) задаем учетную запись NetworkService или выделенного системного пользователя с правами выхода в сеть.
  2. Отключение строгого контроля soft-fail в платформе 1С: Платформа 1С:Предприятие позволяет игнорировать сетевые сбои при загрузке списков отзыва (когда сам узел доступен, но не отвечает CRL-сервер). Для этого находим файл conf.cfg, расположенный в каталоге общих настроек платформы (например, C:\Program Files\1cv8\conf\conf.cfg), и добавляем директиву: IgnoreServerCertificatesChainRevocationSoftFail=true После внесения изменений обязательно выполняем команду iisreset в командной строке для перезапуска рабочих процессов.
  3. Перенос сертификатов в хранилище локального компьютера: Запускаем консоль управления сертификатами компьютера с помощью команды certlm.msc. Убеждаемся, что корневые и промежуточные сертификаты УЦ Минцифры установлены в разделы «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации» именно локального компьютера, а не текущего пользователя.
  4. Проверка сетевых экранов: Убеждаемся, что сетевой экран сервера и корпоративный шлюз разрешают исходящие соединения на порты 80 (HTTP) и 443 (HTTPS) к адресам центров сертификации и ресурсам Честного Знака для системных процессов.

Диагностика ошибок CryptoAPI

Если ошибка проверки сертификата сохраняется, выясним точный узел, к которому не удается получить доступ. Для этого используем встроенный журнал трассировки Windows:

  1. Открываем Просмотр событий (eventvwr.msc).
  2. Переходим по пути: Журналы приложений и служб -> Microsoft -> Windows -> CAPI2 -> Operational.
  3. Нажимаем правой кнопкой мыши по журналу и выбираем Включить журнал.
  4. Повторяем ошибочный запрос к ГИС МТ из 1С:Розницы.
  5. В журнале фильтруем ошибки по категории задачи Verify Chain Policy или Build Chain. В описании события будет указан прямой URL-адрес файла списка отзыва (.crl), запрос к которому завершился таймаутом или ошибкой доступа.
← На главную