Коротко
На нашем рабочем месте ошибка 0x800700EA при подписании в АС ЭТРАН исчезла после отключения интеграции ViPNet CSP с Microsoft CryptoAPI и перезагрузки компьютера. Этот способ подходит только для компьютеров, где одновременно установлены ViPNet CSP и КриптоПро CSP, а сертификат электронной подписи работает через КриптоПро.
Как проявлялась ошибка
АС ЭТРАН открывалась нормально, сертификат был установлен, а тест контейнера в КриптоПро CSP завершался без ошибок. Сбой появлялся только при подписании накладной или заявки:
Ошибка 0x800700EA
Доступны дополнительные данные
На других сайтах этот же сертификат мог работать. Поэтому сначала проверили не сертификат, а состав криптографических программ на компьютере.
Проверьте, установлен ли ViPNet CSP
- Откройте «Параметры» → «Приложения» или «Панель управления» → «Программы и компоненты».
- Найдите в списке ViPNet CSP и КриптоПро CSP.
- Если ViPNet CSP отсутствует, описанный способ к вашему случаю не относится.
ViPNet CSP может устанавливаться вместе с ViPNet Client. Удалять ViPNet Client не нужно: он может использоваться для подключения к защищённой сети.
Отключите интеграцию ViPNet CSP с Microsoft CryptoAPI
- Запустите ViPNet CSP.
- Откройте раздел «Дополнительно».
- Снимите флажок «Поддержка работы ViPNet CSP через Microsoft CryptoAPI».
- Сохраните настройки.
- Перезагрузите компьютер.
Название пункта зависит от версии ViPNet CSP. Если настройки нет, откройте «Программы и компоненты», выберите ViPNet CSP → «Изменить» и проверьте состав установленных компонентов Microsoft CryptoAPI.
Переустановите сертификат из контейнера КриптоПро
После перезагрузки я заново связал сертификат с контейнером:
- Открыл КриптоПро CSP.
- Перешёл на вкладку «Сервис».
- Нажал «Просмотреть сертификаты в контейнере».
- Выбрал рабочий контейнер и нажал «Установить».
После этого повторил подписание в ЭТРАН. Ошибка 0x800700EA больше не появилась.
Что важно учесть
Отключение Microsoft CryptoAPI в ViPNet CSP изменит работу программ, которые подписывают документы именно через ViPNet. На компьютере, где ViPNet CSP используется не только компонентами ViPNet Client, сначала запишите исходные настройки.
Не меняйте вручную значения в ветках Provider Types и не назначайте криптопровайдер через реестр. На рабочем месте со средствами криптографической защиты такие правки трудно проверить и откатить. Если флажок не помог, верните исходное значение и отдельно проверяйте версию ViPNet CSP, КриптоПро CSP и способ привязки сертификата.
Как понять, что это другой случай
Эта инструкция не подходит, если ViPNet CSP не установлен, контейнер не проходит тест в КриптоПро или ошибка возникает ещё до выбора сертификата. Тогда код 0x800700EA имеет другую причину.
Получилось или остались вопросы?
Поделитесь результатом, дополните инструкцию своим опытом или задайте вопрос. Я читаю комментарии и обновляю статьи по реальным случаям.