Настройка прямого взаимодействия с Социальным фондом России (СФР, ранее ФСС) для загрузки электронных больничных листов (ЭЛН) — задача частая, но сопряженная с техническими трудностями. Особенно много вопросов возникает, когда организация не использует встроенный сервис «1С-Отчетность», а настраивает обмен с использованием сторонних сертификатов (например, от СБиС/Тензор) в терминальном режиме или в клиент-серверной архитектуре. При этом пользователи регулярно сталкиваются с непонятными ошибками криптопровайдера CryptS.
В этой статье мы подробно разберем причины возникновения двух наиболее распространенных ошибок — 0x8009200b и 0x80090010 — и пошагово рассмотрим способы их решения.
Данный сбой обычно происходит при попытке отправить запрос на получение ЭЛН или подписать файл запроса. Программа выдает следующее диагностическое сообщение:
Объект CryptS : Ошибка при попытке получения контекста криптопровайдера. 0x8009200b (8009200b) Не удается найти сертификат и закрытый ключ для расшифровки. Не удалось подписать файл запроса ЭЛН!
Проанализируем две основные причины возникновения этой неполадки.
Причина №1: Некорректная установка личного сертификата в систему
Самая частая ошибка администраторов и пользователей — установка личной подписи путем обычного импорта файла сертификата (с расширением .cer) двойным кликом мыши. При этом операционная система импортирует только открытый ключ, но не создает связь с контейнером закрытого ключа, расположенным на токене (флешке) или в реестре ПК.
Разберем по шагам правильный алгоритм установки через программу КриптоПро CSP:
Выполнение этой процедуры принудительно запишет сертификат в личное хранилище текущего пользователя Windows и жестко свяжет его с соответствующим контейнером закрытого ключа.
Причина №2: Неправильное размещение сертификатов СФР по хранилищам
При ручной настройке обмена технологические сертификаты контролирующего органа (СФР) скачиваются с официального сайта ведомства и часто ошибочно устанавливаются в личное хранилище пользователя. Из-за этого 1С пытается сопоставить сертификат фонда с закрытым ключом вашей организации, что вызывает сбой 0x8009200b.
Рассмотрим правильную схему распределения сертификатов в операционной системе:
Эта проблема характерна для работы в терминальном режиме (RDP). При попытке подписать или отправить данные система выдает ошибку:
Объект CryptS : Ошибка при подписании данных. 0x80090010 (80090010) Отказано в доступе. Не удалось подписать файл запроса ЭЛН!
Выясним причины ограничения прав доступа и способы их устранения.
Причина №1: Отсутствие прав у терминального пользователя на чтение контейнера из реестра сервера
Если закрытые ключи были скопированы непосредственно в реестр сервера, у учетной записи обычного пользователя Windows Server может банально не хватать прав для работы с этой веткой реестра.
Для исправления прав выполним следующие действия:
regedit от имени администратора сервера.
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\<SID-пользователя>\Keys
WOW6432Node).
Keys (или по папке конкретного ключа) и выберем пункт Разрешения.Причина №2: Проблемы с пробросом физических токенов (флешек) по RDP
Если закрытый ключ находится на токене, подключенном к локальному компьютеру, стандартные политики безопасности Windows Server могут блокировать к нему доступ из удаленной сессии. Рекомендуется переносить контейнеры непосредственно в локальный реестр сервера или использовать специализированное ПО для проброса смарт-карт.
Если база данных 1С развернута в клиент-серверном варианте, фоновые и регламентные задания по умолчанию выполняются на стороне сервера приложений 1С под служебной учетной записью (часто это USR1CV8). Эта учетная запись не имеет доступа к сертификатам, установленным в профиле обычного терминального пользователя Windows, что приводит к краху операций шифрования при автоматическом обмене.
Рассмотрим два пути обхода этой проблемы:
Это самый простой и рекомендуемый способ, если обмен запускается пользователями вручную из интерфейса программы. Мы можем указать системе выполнять все криптографические операции на локальном компьютере пользователя:
Если требуется полностью автоматический фоновый обмен, нам придется настроить окружение для учетной записи USR1CV8:
USR1CV8.КриптоПро CSP, импортируем личный сертификат и технологические ключи СФР по правилам, описанным выше.Если настроить криптографию на сервере оперативно не получается, а рассчитывать пособия сотрудникам нужно прямо сейчас, воспользуемся альтернативным встроенным механизмом 1С: