Браузер не видит сертификат электронной подписи

Обновлено: 04.07.2024

Трудности валидации на сайте «РТС-Тендер» возникают из-за того, что ЭЦП browser Plug-In не видит ключ RuToken или только сертификат на подпись. Узнать, почему ПК не видит ключ электронной подписи, помогут инструкция от поставщика специализированного ПО, тематический форум на сайте ФНС или ресурсах, посвящённых ЭЦП, а также специалисты из службы технической поддержки производителя крипто-ПО.

Как должно работать

Почему не видит ЭЦП компьютер? Вроде и ключ в виде флешки есть (тот же RuToken), и утилита «Крипто-Про» установлена, а проверка ЭП не выполняется. Основная причина — ПК изначально не видит флешку ЭЦП. Это возникает обычно, потому что ключ пытаются запустить на устройстве с неподдерживаемой ОС. Ведь каждый ключик-флешка делается под свою среду, и банальное обновление ОС может привести к потере совместимости с имеющимся ключом ЭЦП (флешкой).

Когда установка криптопровайдера выполнена на поддерживаемом аппарате, по инструкции, но всё равно компьютер не видит ЭЦП, проблема может быть и в самом ключе. Чтобы разобраться, свяжитесь с поддержкой. Там у вас запросят скриншоты:

  • версии/сборки CSP (вкладка «Общие»);
  • ошибок при подключении контейнера ЭЦП.

Кроме того, укажите специалистам, где получали ЭЦП, на каком носителе у вас установлен контейнер (рутокен, етокен, флешка или реестр) и какая используется ОС (разрядность, сборка).

Компьютер не видит сертификат ЭЦП: первые шаги

Если компьютер не видит сертификат электронной подписи, то в операционной системе Windows нужно пройти по адресу:

Пуск — Панель управления — КриптоПРО CSP — Сервис — Протестировать — По сертификату. Так можно понять, установлен ли сертификат в Личное хранилище пользователя с привязкой к RuToken-у.

Если же у пользователя браузер не видит ЭЦП и он не может пройти регистрацию на сайте или подключить цифровую подпись, нужно установить, добавлен ли в доверенные интересующий сайт:
Пуск — Все программы —КРИПТО-ПРО — Настройки ЭЦП browser Plug-In.

Лучше использовать браузер Internet Explorer, так как java script может некорректно работать в других браузерах.

Если компьютер не видит ЭЦП, то в первую очередь необходимо посетить тематический форум компании КриптоПро. Если вопрос не будет решён собственными силами, тогда обратиться в службу поддержки (прислать туда евент-логи системы и приложений, указать версию/сборку CSP, ОС).

Что делать если компьютер не видит ЭЦП

Трудности валидации на сайте «РТС-Тендер» возникают из-за того, что ЭЦП browser Plug-In не видит ключ RuToken или только сертификат на подпись. Узнать, почему ПК не видит ключ электронной подписи, помогут инструкция от поставщика специализированного ПО, тематический форум на сайте ФНС или ресурсах, посвящённых ЭЦП, а также специалисты из службы технической поддержки производителя крипто-ПО

Как должно работать

Почему не видит ЭЦП компьютер? Вроде и ключ в виде флешки есть (тот же RuToken), и утилита «Крипто-Про» установлена, а проверка ЭП не выполняется. Основная причина — ПК изначально не видит флешку ЭЦП. Это возникает обычно, потому что ключ пытаются запустить на устройстве с неподдерживаемой ОС. Ведь каждый ключик-флешка делается под свою среду, и банальное обновление ОС может привести к потере совместимости с имеющимся ключом ЭЦП (флешкой).

Когда установка криптопровайдера выполнена на поддерживаемом аппарате, по инструкции, но всё равно компьютер не видит ЭЦП, проблема может быть и в самом ключе. Чтобы разобраться, свяжитесь с поддержкой. Там у вас запросят скриншоты:

  • версии/сборки CSP (вкладка «Общие»);
  • ошибок при подключении контейнера ЭЦП.

Кроме того, укажите специалистам, где получали ЭЦП, на каком носителе у вас установлен контейнер (рутокен, етокен, флешка или реестр) и какая используется ОС (разрядность, сборка).

Компьютер не видит сертификат ЭЦП: первые шаги

Если компьютер не видит сертификат электронной подписи, то в операционной системе Windows нужно пройти по адресу:

Пуск — Панель управления — КриптоПРО CSP — Сервис — Протестировать — По сертификату. Так можно понять, установлен ли сертификат в Личное хранилище пользователя с привязкой к RuToken-у.

Если же у пользователя браузер не видит ЭЦП и он не может пройти регистрацию на сайте или подключить цифровую подпись, нужно установить, добавлен ли в доверенные интересующий сайт:
Пуск — Все программы —КРИПТО-ПРО — Настройки ЭЦП browser Plug-In.

Лучше использовать браузер Internet Explorer, так как java script может некорректно работать в других браузерах.

Если компьютер не видит ЭЦП, то в первую очередь необходимо посетить тематический форум компании КриптоПро. Если вопрос не будет решён собственными силами, тогда обратиться в службу поддержки (прислать туда евент-логи системы и приложений, указать версию/сборку CSP, ОС).

Не ставится ключ/сертификат

Почему «КриптоПро» CSP может не видеть ключей на Рутокен? Следует проверить такие параметры:

  • корректно ли установлена программа (запущена ли служба Windows Installer);
  • есть доступ в сеть;
  • выдан корректный ключ в сертифицированном центре.

В принципе нужно диагностировать две причины, почему «КриптоПро» не видит Рутокен. Первая - это отсутствие ключей на Рутокене. Чтобы проверить, не пустой ли Рутокен, нужно понять, есть ли свободное место на нем. Для этого в окне «Информация о Рутокене» посмотрите объем занятого места. Контейнер Крипто-про занимает примерно 4 килобайта.
Второй причиной, почему «КриптоПро» не видит ключи на Рутокен, является некорректный просмотр. Т.е. вы не можете просмотреть сертификат подписи. В этом случае вам необходимо обратиться в УЦ, который выдавал подпись.

При установке желательно делать так:


установить личный сертификат, следуя мастеру установки



указать через «Обзор» расположение файла сертификата с расширением .cer



выбрать контейнер закрытого ключа (через «Обзор» выбрать сертификат на считывателе — флешке/дискете)

Если когда-то были неправильно установлены предыдущие ключи и новый носитель не устанавливается, то нужно очистить реестр (Windows). Для этого в панели CSP есть кнопка «Удалить запомненные пароли».

Если в событиях приложений ошибок не было, а в системе евент-логи их показали, необходимо проверить файлы Sfc/scannow, а после перерегистрировать компоненты MSIExec/unregister, потом — MSIExec/regserver.


Те, кто хоть раз сталкивался с необходимостью реализовать электронную цифровую подпись в браузере, хорошо знают, какая это головная боль для разработчика, и особенно для веб-разработчика, который успел привыкнуть к открытым стандартам, правилу, что его ПО одинаково хорошо работает во всех браузерах и ему все равно, какая ось стоит у пользователя, ну и прочим прелестям веба.

На самом деле сегодня ситуация с ЭЦП в браузере все же не так печальна как еще несколько лет назад, но она все же далека от идеала. Тема эта также несколько раз поднималась на хабре, например, здесь и здесь.

Под катом рассказ о самой проблеме, о том, как эту проблему можно решить, о том, как я ее решал, а также личные впечатления о том, как обстоят дела с ЭЦП в Беларуси.

Суть проблемы и что с ней будет завтра

Проблема довольно тривиальна: хотите реализовать ЭЦП на клиенте в браузере, думаете использовать для этого свой любимый javascript? Ничего не выйдет, и все потому, что браузеры просто не предоставляют API для работы с сертификатами, токенами, подписью и тд. и тп… Как должен выглядить этот механизм в мечтах любого веб-разработчика? Наверное как-то так:

Да, а еще было бы здорово, чтобы все это поддерживало отечественные ГОСТы… ну, это я уж совсем размечтался. К сожалению, ничего подобного в современных браузерах вы не найдете. Есть, конечно, робкие попытки реализовать что-то похожее у Mozilla, но предупреждение в заголовке статьи весьма печалит:


Кстати, если кто-то пытался использовать этот API, отпишитесь, весьма интересно.
Также есть упоминание Crypto в репозитории W3C. Скорее всего работа там началась совсем не так давно, материала там сейчас немного, но последнее обновление было недавно, так что работа идет:


Будет ли все это доведено до ума, а самое главное, когда это случится, сегодня вам, наверное, никто не скажет. Так что же остается делать разработчикам, которым надо здесь и сейчас?

Костыли

  • использование ActiveX ( CAPICOM)
  • использование плагинов к браузерам
  • использование Java-апплетов
  • использование туннеля (Stunnel)
ActiveX

Используется в 99% случаев, когда необходимо реализовать ЭЦП в браузере, не стесняются его использовать банки, торговые площадки и прочие серьезные организации. На мой взгляд, сейчас это худший из вариантов, почему?
Вы привыкли использовать для работы свой любимый FF или Chrome? — Забудьте! ActiveX работает только в IE.
Не любите копаться в настройках браузера? — А придется! Перед тем как все заработает, вам изрядно придется покопаться в настройках безопасности вашего IE.
А может быть вы такой продвинутый, что у вас стоит Win7, да еще и x64, а может вы еще и IE9-10 себе поставили? — Очень зря, скорее всего у вас ничего не получится.
Шутки шутками, а ведь Microsoft объявила, что поддержка CAPICOM прекращена и далее компонент разрабатываться не будет и последняя версия CAPICOM, которая официально поддерживается, была в Windows Vista.

Плагины к браузерам

Если чего-то нет в браузере, но оно вам очень нужно, выход есть — напишите свой плагин. Основная проблема здесь в том, что если вы хотите, чтобы это работало во всех браузерах, вам придется написать плагин под каждый из них. Есть еще проблема с поддержкой — никто не гарантирует, что ваш плагин будет работать в новой версией браузера (или старой), вспомните ситуацию с FF, когда Mozilla перешла на ускоренный выпуск версий. Ну и еще проблема с тем, что вам этот плагин как минимум придется поставить. Подробнее об этом решении можно найти здесь.

Java applet

Все вроде бы не так уж плохо, и код написан один раз, и работает во всех браузерах, и даже настраивать ничего не надо. Но если у вас не установлена JRE, ничего не будет. Чаще всего работает в связке с OpenSSL, хотя, используя JNI, можно много чего прикрутить. Да, чтобы все работало, сам апплет должен быть подписан.

Туннель

Относительно новый способ, работает по принципу прокси, основная идея в том, что особым образом сформированный POST-запрос при отправке на сервер проходит через туннель, тот подписывает данные из этого запроса, подставляет подписанные данные в поле запроса вместо данных и все отправляется дальше на сервер и туда уже приходят данные с ЭЦП. Принцип довольно простой, но эффективный. У этого способа имеется практическая реализация. Подробнее можно почитать здесь. Чтобы все это работало, на клиенте собственно должен быть установлен этот туннель, хотя можно запустить и с флешки.

Как видите, решения есть, хотя каждое из них имеет определенные ограничения и оговорки, я намеренно не касался таких проблем как работа в различных операционных системах, поддержка ГОСТов, работа на мобильных платформах — здесь проблем еще больше, а ведь это тоже очень важно.

Личный опыт

Да, мне тоже “повезло” заниматься реализацией ЭЦП в браузере. Сам работаю в одной из минских компаний, занимающейся разработкой ПО, и однажды потребовалось срочно реализовать поддержку ЭЦП в браузере в одной из систем. Скажу честно, сначала хотел поступить как и 99% в такой ситуации и задействовать ActiveX. Но, постепенно погружаясь в проблему, стал осознавать, что это обернется сначала головной болью для пользователей, а затем и для меня как разработчика. Писать плагины под каждый браузер не было времени. Оставалось два решения: java апплет и туннель. Решающим здесь оказался… вы не поверите, ГОСТ.

Дело в том, что в Беларуси как и в России принят свой ГОСТ на процедуры выработки и проверки электронной цифровой подписи, только у нас он называется СТБ РБ 1176.2–99 и никаких вам RSA. Даешь свой ГОСТ каждой стране! И если для российского ГОСТа есть практические реализации каждого из вышеперечисленных способов, можно выбирать любой, то белорусским разработчикам повезло куда меньше. По этому поводу даже лично беседовал c представителями компании, выпускающей криптографическое ПО для нашей страны. Разговор оставил двоякое впечатление. Народ вполне адекватный, проблему понимают, но говорят, что это не их задача, они, мол, написали криптопровайдер, удовлетворяющий всем ГОСТам и прошедший государственную экспертизу, а как вы его собираетесь использовать, это не их проблема.

— Можем лишь предложить вам использовать ActiveX.
— Ну, а как же, проблемы связанные с ним?
— У нас, конечно, есть определенные наработки с использованием java апплетов, но в качестве продукта мы вам их пока предложить не можем. Разработка такого рода ПО — не наша задача.

На мой взгляд, это не совсем верная позиция, ведь предлагая продукт, коммерчески выгодно предложить и окружение к нему.

Ну да ладно, работаем с тем, что есть. А что у нас есть? Ранее в нашей компании уже было написано desktop-ое приложение, использующее функции ЭЦП, и там имелся компонент, работающий непосредственно с CryptoAPI, написан он был на delphi. Очень уж хотелось как-то использовать этот опыт коллег и самому не тратить на это время, а самое главное сделать это быстро. Но как это сделать? Соединить компонент на delphi и веб-приложение? Ответ на схеме:


Кратко поясню, что происходит. Когда нам нужно что-то подписать, мы с помощью javascript вызываем функцию java апплета:


Апплет в свою очередь через сокеты связывается с desktop-приложением, передает ему необходимые параметры, приложение подписывает то, что мы запросили (для этого как раз используется ранее написанный компонент коллег), и передает подписанные данные апплету, а тот в свою очередь браузеру, вызывая функцию:


Для общения апплета и приложения был придуман и реализован простой протокол, на это, наверное, ушла большая часть времени, так как остальное оказалось довольно простым. Недостатки здесь типичные: наличие JRE и desktop-приложения, которое будет либо установлено, либо откуда-то запущено. Интересно будет услышать ваши комментарии относительно данного способа.

Надеюсь, что вышеизложенная информация поможет лучше разобраться с проблемой ЭЦП в браузере тем, кто с ней столкнулся.

Иногда при работе с электронной цифровой подписью (ЭЦП) выходит ошибка о том, что ПК не видит сертификат подписи на носителе или о том, что при создании подписи была допущена ошибка. Причина может быть в неустановленном или переставшем работать драйвере, в неисправности токена или в неисправности программной части компьютера.

Не видит Сертификат ЭЦП на носителе

Почему не виден сертификат ЭЦП на носителе

Обычно проблема решается простой перезагрузкой компьютера и объясняется сбоем в работе программных компонентов. Но иногда для исправления ошибки нужно переустановить драйвера или обратиться в службу технической поддержки пользователей.

Причина 1: драйвер не установлен или устройство отображается в диспетчере устройств с восклицательным знаком

Если на носителе Рутокен ЭЦП не найдено ни одного сертификата, а в диспетчере устройств носитель отображается с восклицательным знаком, то проблема кроется в драйвере.

Для исправления ситуации нужно извлечь носитель ЭЦП из компьютера и скачать последнюю версию драйвера. Скачивание нужно производить только с официальных ресурсов:

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

Причина 2: долгое опознание носителя на Windows 7

При работе в ОС Windows 7 драйверы могут долго назначаться. Решение проблемы — дождитесь окончания процесса или обновите версию ОС.

Причина 3: USB-порт работает некорректно

Некорректная работа USB-порта

Причина 4: носитель неисправен

Если при переключении носителя к другому ПК или USB-порту флешку компьютер не видит, то проблема в носителе. Чтобы устранить неисправность, обратитесь в сервисный центр для выпуска нового токена.

Почему выходит ошибка при создании подписи

Ошибка создания подписи обычно имеет в расшифровке два значения:

  • элемент не найден;
  • не удалось построить цепочку сертификатов.

Неисправность работы подписи связана с некорректной работой криптопровайдера, неустановленными или необновленными сертификатами.

Решение проблемы зависит от типа ошибки и обычно не требует обращения в техническую поддержку.

Устранение ошибки ненайденного элемента ЭЦП

  1. перезагрузите компьютер;
  2. присоедините носитель ключа электронной подписи;
  3. повторите подписание документа.

Если после проделанной работы ошибка сохраняется, то нужно обратиться в сервисный центр.

Устранение ошибки с построением цепочки сертификатов

Обычно ошибку вызывает отсутствие сертификатов доверенных корневых центров. Чтобы устранить неисправность, нужно открыть список сертификатов и найти проблемный. Он будет иметь отметку о проблеме в проверке отношений:

Проблема в посике Сертификата

Затем пользователь скачивает с официальной страницы сертификат Минкомсвязи РФ и сертификат удостоверяющего центра, имеющего проблемы в работе. Устанавливают их в раздел «‎Корневые сертификаты»‎, а пошаговый процесс выглядит так:

В нужном сертификате нажать «‎Установить».

Установка Сертификата

В мастере импорта сертификатов нажать «‎Далее» и в новом окне поставить галочку напротив «‎Поместить все сертификаты в следующем хранилище». Нажать «‎Обзор».

Обзор Сетификатов

В открывшемся списке выбрать «‎Доверенные корневые центры» и нажать последовательно «‎ОК» и «‎Далее».

Доверенные корневые центры

Нажать «‎Готово», а затем подтвердить установку.

Подтверждение установки

Дождаться установки и перезагрузить ПК. Если после этого подписание сопровождается ошибкой, то необходимо обратиться за помощью в техническую поддержку.

Ошибки в работе носителя электронной подписи могут быть вызваны как неисправностью самого носителя, так и неисправностями в программном обеспечении. Перезагрузите ПК и переключите токен в другой порт, чтобы убедиться в его исправности. Если проблема вызвана тем, что токен поврежден, то необходимо обратиться в сервисный центр компании, выпустившей USB. При ошибке, возникающей во время подписания документа, нужно убедиться в корректной работе всех сертификатов и криптопровайдера и при необходимости провести их полную переустановку.

Читайте также: