При плановом обновлении или продлении сертификата электронной подписи пользователи 1С-ЭДО часто сталкиваются с неприятной ситуацией: новый сертификат успешно установлен в операционной системе, однако при попытке отправить или подписать документ программа выдает критическую ошибку: «Не установлена на компьютере. Выбран неизвестный алгоритм подписи "GOST 34.10-2012 256"». При этом старый сертификат мог работать без каких-либо нареканий.
Эта проблема связана с тем, что при переходе на новые стандарты шифрования ГОСТ Р 34.10-2012 происходит рассинхронизация внутренних настроек криптографии в платформе 1С:Предприятие и установленного в операционной системе средства криптографической защиты информации (СКЗИ) — будь то ViPNet CSP или КриптоПро CSP. В этой статье мы подробно и по шагам разберем, как восстановить работоспособность электронного документооборота.
Как показывает практика, наиболее частой причиной сбоя является жесткое указание конкретного криптопровайдера в скрытых настройках документооборота. Даже если на вашем компьютере используется ViPNet CSP, прямой выбор этого продукта в настройках обмена может приводить к ошибке распознавания алгоритмов. Нам необходимо перевести систему в автоматический режим определения СКЗИ.
Выполним следующие действия:
Выбор режима Авто заставляет платформу 1С не искать конкретную программу по текстовому имени, а обращаться напрямую к интерфейсу CryptoAPI операционной системы Windows. Это позволяет корректно инициализировать библиотеки шифрования ГОСТ 2012.
Если вы используете КриптоПро CSP и первый способ не принес результата, проблема может заключаться в некорректном сопоставлении наименований алгоритмов. Платформа 1С может ожидать одну кодировку имени алгоритма, в то время как СКЗИ отдает другую.
Разберем, как принудительно переназначить рабочий алгоритм подписи:
Бывают случаи, когда в информационной базе сохраняются устаревшие параметры регистрации программного модуля шифрования. В этом случае нам нужно заставить 1С полностью перезаписать пути к библиотекам и имена алгоритмов в своем внутреннем реестре.
Проанализируем этот процесс подробнее:
ViPNet CSP) и нажмем кнопку удаления (или пометим его на удаление).Если платформа 1С по-прежнему сообщает о неизвестном алгоритме, проблема может лежать глубже — в повреждении системных библиотек самого криптопровайдера. Это часто происходит при обновлении операционной системы Windows или при установке других программ безопасности. Для локализации неисправности и проверки работы криптографии в обход механизмов ЭДО можно использовать инструмент для подписания произвольных файлов средствами платформы 1С.
Для исправления ситуации выполним следующие шаги:
ViPNet CSP, выделим его и нажмем кнопку «Восстановить» (Repair). По окончании процесса восстановления обязательно перезагрузим компьютер.Одновременное присутствие на одном рабочем месте двух разных криптопровайдеров — классическая причина сбоев в работе электронного документооборота. Программы начинают конфликтовать за перехват системных вызовов CryptoAPI, из-за чего 1С теряет доступ к алгоритмам шифрования. Для проверки внутренних параметров проблемных сертификатов и точного определения используемых в них алгоритмов можно использовать универсальный декодер структуры файлов сертификатов.
Рассмотрим порядок решения этого конфликта:
cspclean (ее можно скачать на официальном форуме КриптоПро) для удаления «хвостов» программы, которые могут мешать работе оставшегося ViPNet CSP.Если ваша база данных 1С работает в клиент-серверном варианте, и подписание документов настроено «на сервере», то возникновение ошибки «Неизвестный алгоритм подписи» означает, что СКЗИ физически отсутствует на серверной машине.
Выясним, как решить эту проблему:
Необходимо установить используемый криптопровайдер (с вводом коммерческой лицензии) непосредственно на тот сервер, где запущена служба 1С:Предприятие (процессы rphost.exe). Серверная операционная система должна иметь точно такие же настройки СКЗИ, как и клиентский компьютер. Также убедитесь, что у пользователя ОС, под которым запущена служба сервера 1С (обычно это локальный пользователь USR1CV8), есть права на чтение контейнеров закрытых ключей и веток реестра криптопровайдера.