При настройке электронного документооборота (ЭДО) или 1С-Отчетности на терминальном сервере часто возникает следующая ситуация: если запустить платформу 1С от имени локального администратора, всё работает отлично, документы подписываются и отправляются. Однако стоит зайти обычным пользователем через RDP — появляется ошибка «Не выполнена тестовая операция криптографии». Разберем по шагам, почему возникает эта проблема и какие настройки системы нужно проверить, чтобы всё заработало у пользователей без административных привилегий.
Одной из главных причин проблемы является банальная нехватка прав на чтение ключей реестра, где КриптоПро хранит свои настройки и информацию о контейнерах. Администратор имеет к ним доступ по умолчанию, а вот обычный пользователь терминала — нет. Проанализируем, какие ветки требуют проверки.
Откроем редактор реестра и предоставим права на «Чтение» (а в случае работы с контейнерами ключей в реестре — на «Полный доступ») пользователям или группе пользователей терминала для следующих веток:
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto ProHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro (обязательно проверим этот раздел, если у нас 64-битная операционная система)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificatesПосле назначения прав рекомендуется перезапустить сеансы пользователей.
Криптографические операции активно используют файловую систему. Если платформа 1С или провайдер КриптоПро не могут создать временные файлы, процесс подписания прервется. Выясним причину отсутствия доступа и исправим её.
Рассмотрим директории, на которые у пользователя обязательно должны быть права чтения и записи:
C:\Program Files\Crypto Pro (в основном достаточно прав на чтение и выполнение).C:\ProgramData\Crypto Pro.%TEMP%, а также доступ к системной папке C:\Windows\Temp, которая может использоваться при обращении через COM-объекты.Платформа 1С взаимодействует с криптографией не напрямую, а через специальные COM-компоненты. Чаще всего используется CAdESCOM. Обычный пользователь может не иметь прав на запуск и активацию этих классов в операционной системе.
Посмотрим на алгоритм настройки:
dcomcnfg в строке выполнения).Проанализируем ситуацию с лицензированием. Для работы КриптоПро CSP на серверных операционных системах (Windows Server) через RDP строго обязательна серверная лицензия.
Если на сервере установлена обычная (клиентская) лицензия или лицензия вшита в сертификат, то локальный администратор сможет работать с криптографией, так как программа часто игнорирует запрет для административных учетных записей. Но при входе обычного пользователя через RDP-сессию любые криптографические операции блокируются. Убедимся, что введена именно серверная лицензия.
Частая ошибка системных администраторов — устанавливать сертификаты из-под учетной записи администратора или с использованием команды «Запуск от имени администратора». При этом контейнер и сертификат получают дескриптор безопасности, жестко привязанный к администратору.
Разберем, как сделать правильно:
Если архитектура работы 1С — клиент-серверная (сервер 1С находится на отдельной машине или служба выполняется под специальным пользователем, например USR1CV8), нужно проверить настройки самой платформы. Инициализация подписания может происходить с ошибкой, если 1С пытается выполнить операцию на сервере, а ключи находятся локально у пользователя (или проброшены в терминал).
В настройках криптографии и ЭДО платформы 1С проверим, где выполняется подписание:
Если пользователь вставляет защищенный носитель в свой локальный компьютер и работает на терминальном сервере, рассмотрим параметры проброса оборудования:
Выполнив эти шаги системно, мы сможем определить причину сбоя и устранить ошибку «Не выполнена тестовая операция криптографии» для пользователей терминального сервера, не прибегая к выдаче небезопасных прав администратора. Для быстрой проверки работоспособности сертификата в сеансе пользователя можно применить обработку для подписи файлов средствами платформы 1С.