Плагин криптопро для браузера chrome. Для работы с электронной подписью в браузере Internet Explorer потребуется плагин КриптоПро CADESCOM

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

На данный момент этот плагин можно найти в каталогах расширений/дополнений для следующих браузеров: Google Chrome , Opera , Yandex.Browser , Mozila Firefox .

Стоит также помнить, что плагин распространяется абсолютно бесплатно. Позволяет ставить или проверять подписи на следующих типах файлах/документах:

  • Различные формы, использующиеся для обратной связи на сайтах;
  • Электронные документы в PDF , DOCX и других подобных форматах;
  • Данные в текстовых сообщениях;
  • Файлы, которые были загружены другим пользователем на сервер.

Способ 1: Установка в Яндекс.Браузер, Google Chrome и Opera

Для начала нужно узнать, как установить данное расширение в браузер. В каждой программе оно ставится по-разному. Процесс установки плагина выглядит практически одинаково для браузеров Google и Yandex.

Пошаговый процесс имеет следующий вид:


Данную инструкцию также придётся использовать, если вы работаете с Оперой, так как в их официальном каталоге приложений вы не сможете найти данного расширения, которое будет работать корректно.

Способ 2: Установка для Firefox

В данном случае у вас не получится использовать расширение из браузера для Chrome, так как оно не сможет установиться в браузер Firefox, поэтому придётся скачивать расширение с официального сайта разработчика и устанавливать с компьютера.

Выполните эти действия, чтобы скачать установщик расширения к себе на компьютер:


Процесс установки плагина на компьютер несложен и занимает немного времени. Вам нужно просто найти исполняемый EXE файл, который вы ранее скачали с сайта и выполнить установку по его инструкции. После неё плагин автоматически появится в списке расширений Firefox.

Железный человек 2 мая 2015 в 09:46

Электронная цифровая подпись на сайте при помощи КриптоПро ЭЦП Browser plug-in

В данной статье рассмотрим использование электронно-цифровой подписи на сайте.

Что необходимо, чтобы человек смог использовать электронно-цифровую подпись на сайте?

1) СКЗИ (средство криптографической защиты информации)
Мой опыт работы показывает, что порядка 90% использует КриптоПро CSP (скачать), который в явном или неявном виде продвигают удостоверяющие центры. Порядка 10% VipNet CSP (), который можно использовать бесплатно. С остальными СКЗИ на практике не встречался.
2) КриптоПро ЭЦП Browser plug-in (страница плагина).
3) Установленная подпись (хотя бы одна).

Проверка возможности осуществления подписи
javascript (+jquery)

1) Попытка создать объект cades.
Нужно сделать примечание, что тут и далее, будет деление на браузер с ActiveX(читай IE) и остальные.
Проверка будет осуществляться:

Return ("ActiveXObject" in window);
для ActiveX:

Try { store = new ActiveXObject("CAdESCOM.store"); status = true; } catch (e) { status = false; }
Для остальных:

If (navigator.mimeTypes["application/x-cades"]) { status = true; } else { status = false; }
Если проверка прошла неудачно, то уведомляем об этом пользователя.
Стоит иметь ввиду, что после обновления хрома до версии 42 (спасибо статье за информацию) нужно включить:

Chrome://flags/#enable-npapi
Следующая проверка - а разрешен ли плагин для запуска (не для IE проверка)?

Try { store = objSign.CreateObject("CAPICOM.store"); status = true; } catch (e) { status = false; }
Где objSign:

ObjSign = $("", { "id": "cadesplugin", "type": "application/x-cades", "css": { "visibility": "hidden", "height": "0px", "width": "0px", "position": "absolute" } }).appendTo("body").get(0);
Проверяем на СКЗИ путем попытки открыть хранилище.

Try { store.Open(); status = true; } catch (e) { status = false; }
Проверяем на существование сертификатов в хранилище:

If ("Certificates" in store) { certs = store.Certificates; }

И их количество (бывает, что Certificates есть, но пуст, что нам тоже не подойдет):

If (certs.Count) { status = true; } else { status = false; }

Первый шаг сделали - проверили возможность подписания чего-либо.

Выбор электронной цифровой подписи

У клиента может быть установлено несколько сертификатов. Сертификаты могут быть от разных удостоверяющих центров (УЦ), выданными быть разным людям, с разными датами выдачами, поэтому надо предоставить выбор, каким именно он хочется воспользоваться.

1) Группируем по удостоверяющим центрам
Информация об удостоверяющем центре хранится в сертификате.

Certs.Item(i).GetInfo(1)
где certs - сертификаты из хранилища, см выше
i - порядковый номер сертификата от 1 (обратите внимание) до certs.Count.
Обратите внимание, что, в случае «кривых» сертификатов, вернуться может и undefined, имеет смысл сделать один дефолтный УЦ для таких случаев.

Теперь мы знаем список УЦ, услугами которых воспользовался клиент.
Запоминаем их и выведем через optgroup.
Сам text у option будет таким:
cert.GetInfo(6) + " (" + formatDate(cert.ValidFromDate) + " - " + formatDate(cert.ValidToDate) + ")"
в cert.GetInfo(6) - кому выдан сертификат
в ValidFromDate - с какого срока сертификат начал/начнет действие
в ValidToDate - соответственно, до какого срока

Ну и форматирование даты стандартное:

Function formatDate(d) { try { d = new Date(d); return ("0" + d.getDate()).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear(); } catch (e) { return ""; } }
Еще можно подсветить option.
Зеленым - для работоспособных сертификатов, красным - нет.
Информацию можно получить при помощи самого сертификата.

Try { return cert.IsValid().Result; } catch (e) { return false; }
Стоит отметить, что сама по себе данная проверка имеет малую ценность, ибо все причины не может отсечь.
Но самые базовые, например, проверка даты - проверяет.

В value у option запишем отпечаток cert.Thumbprint .
Можно порядковый номер записать, можно другие данные - на ваше усмотрение.

Подписание
Ну и, собственно, самый главный шаг, к которому мы стремились - подписание.

1) Находим выбранный сертификат.
Для нашего примера:

Certs.Find(0, thumbprint).Item(1)
0 - означает, что мы ищем по отпечатку
1 - что используем первый результат выборки (по факту единственный)

2) Подписываем:

If (isActiveX()) { var CPSigner = new ActiveXObject("CAdESCOM.CPSigner"); } else { var CPSigner = objSign.CreateObject("CAdESCOM.CPSigner"); } CPSigner.Certificate = cert; if (isActiveX()) { var SignedData = new ActiveXObject("CAdESCOM.CadesSignedData"); } else { var SignedData = objSign.CreateObject("CAdESCOM.CadesSignedData"); } SignedData.Content = text; return SignedData.SignCades(CPSigner, 1, false);

Где cert - сертификат, при помощи которого подписываем
text - собственно, что подписываем
Ну а в return возвращается подписанное сообщение.

P.s. По максимуму код постарался вычистить от специфики проекта. Если кому-то этот материал пригодится и будет интересно - напишу и серверную часть. Проверка подписанного сообщения (с цепочкой и без), проверка сертификата (ocsp и без), использования tsp и т.д.

Теги: criptopro, ЭЦП, openssl, cades, javascript

Здравствуйте, дорогие друзья! Я расскажу, что делать, если сайт «Госуслуги» (способ актуален и для других сервисов) внезапно перестал работать. Недавно Firefox обновился до версии 52, которая не поддерживает некоторые плагины. Давайте разберемся, что произошло и как с этим бороться.

Устанавливаем программу, в списке плагинов появится нужный - Crypto Interface Plugin , который требуется для работы с сайтом «Госуслуги».

Таким образом, если у вас появились проблемы с работой каких-либо сервисов в Firefox, проверьте текущую версию браузера. Помните, что установка Firefox ESP с поддержкой устаревших плагинов - это временное решение. В перспективе вам все равно придется искать другой вариант, так как Mozilla гарантирует поддержку Firefox ESP до конца 2017 года. Я не рекомендую использовать устаревшую версию, потому что так вы подвергаете свой компьютер риску заражения.

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

Антон Севостьянов
системный администратор,

Необходим для работы с сертификатами, для осуществления шифрования и расшифрования необходимых документов с помощью вашей ЭЦП на таких браузерах как Chrome, Mozilla, Opera и так далее. Естественно, на вашем компьютере должен быть установлен и сам криптопровайдер или . Как вы наверное уже знаете, аналогом данного плагина для браузера является утилита , именно поэтому обязательным условием должной работы электронных площадок была работа на этом браузере. Таким образом, КриптоПро ЭЦП browser plug+in развязывает вам руки и позволяет работать на любых браузерах и сайтах, где требуется использовать ЭЦП.

Для установки данного плагина, в первую очередь, необходимо скачать CryptoPro ЭЦП Browser Plug-in на ваш компьютер, разархивировать установочный файл в любое удобное вам место, например на рабочий стол и двойным кликом запустить его. Установка не требует особых усилий, жмите кнопку "Да" и продолжайте: :




Спустя пару минут установлен. Если у вас есть открытые браузеры, их необходимо будет перезапустить. Компьютер перезапускать не требуется:



Если вы используете , то необходимо выполнить еще пару действий. Запустите браузер, в адресную строку скопируйте и вставьте этот текст: chrome://extensions и в открывшемся списке вы должны увидеть расширение "CryptoPro Extension for CAdES Browser Plug-in" в положении включено:



Если этот параметр уже включен, ничего трогать не нужно, просто перезапустите браузер и он готов к работе. В случае если такого расширения нет, то перейдите по следующей ссылке: CryptoPro Plug-in и установите расширение из магазина приложений.

В случае с браузером необходимо в адресной строке написать opera://extensions и нажать Enter, где Вы попадете в менеджер расширений: Плагин должен быть включен:



Ну и наконец, если Ваш любимый браузер это

мастер слога 2 мая 2015 в 09:46

Электронная цифровая подпись на сайте при помощи КриптоПро ЭЦП Browser plug-in

  • JavaScript ,
  • Разработка веб-сайтов ,
  • Криптография

В данной статье рассмотрим использование электронно-цифровой подписи на сайте.

Что необходимо, чтобы человек смог использовать электронно-цифровую подпись на сайте?

1) СКЗИ (средство криптографической защиты информации)
Мой опыт работы показывает, что порядка 90% использует КриптоПро CSP (скачать), который в явном или неявном виде продвигают удостоверяющие центры. Порядка 10% VipNet CSP (), который можно использовать бесплатно. С остальными СКЗИ на практике не встречался.
2) КриптоПро ЭЦП Browser plug-in (страница плагина).
3) Установленная подпись (хотя бы одна).

Проверка возможности осуществления подписи
javascript (+jquery)

1) Попытка создать объект cades.
Нужно сделать примечание, что тут и далее, будет деление на браузер с ActiveX(читай IE) и остальные.
Проверка будет осуществляться:

Return ("ActiveXObject" in window);
для ActiveX:

Try { store = new ActiveXObject("CAdESCOM.store"); status = true; } catch (e) { status = false; }
Для остальных:

If (navigator.mimeTypes["application/x-cades"]) { status = true; } else { status = false; }
Если проверка прошла неудачно, то уведомляем об этом пользователя.
Стоит иметь ввиду, что после обновления хрома до версии 42 (спасибо за информацию) нужно включить:

Chrome://flags/#enable-npapi
Следующая проверка - а разрешен ли плагин для запуска (не для IE проверка)?

Try { store = objSign.CreateObject("CAPICOM.store"); status = true; } catch (e) { status = false; }
Где objSign:

ObjSign = $("", { "id": "cadesplugin", "type": "application/x-cades", "css": { "visibility": "hidden", "height": "0px", "width": "0px", "position": "absolute" } }).appendTo("body").get(0);
Проверяем на СКЗИ путем попытки открыть хранилище.

Try { store.Open(); status = true; } catch (e) { status = false; }
Проверяем на существование сертификатов в хранилище:

If ("Certificates" in store) { certs = store.Certificates; }

И их количество (бывает, что Certificates есть, но пуст, что нам тоже не подойдет):

If (certs.Count) { status = true; } else { status = false; }

Первый шаг сделали - проверили возможность подписания чего-либо.

Выбор электронной цифровой подписи

У клиента может быть установлено несколько сертификатов. Сертификаты могут быть от разных удостоверяющих центров (УЦ), выданными быть разным людям, с разными датами выдачами, поэтому надо предоставить выбор, каким именно он хочется воспользоваться.

1) Группируем по удостоверяющим центрам
Информация об удостоверяющем центре хранится в сертификате.

Certs.Item(i).GetInfo(1)
где certs - сертификаты из хранилища, см выше
i - порядковый номер сертификата от 1 (обратите внимание) до certs.Count.
Обратите внимание, что, в случае «кривых» сертификатов, вернуться может и undefined, имеет смысл сделать один дефолтный УЦ для таких случаев.

Теперь мы знаем список УЦ, услугами которых воспользовался клиент.
Запоминаем их и выведем через optgroup.
Сам text у option будет таким:
cert.GetInfo(6) + " (" + formatDate(cert.ValidFromDate) + " - " + formatDate(cert.ValidToDate) + ")"
в cert.GetInfo(6) - кому выдан сертификат
в ValidFromDate - с какого срока сертификат начал/начнет действие
в ValidToDate - соответственно, до какого срока

Ну и форматирование даты стандартное:

Function formatDate(d) { try { d = new Date(d); return ("0" + d.getDate()).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear(); } catch (e) { return ""; } }
Еще можно подсветить option.
Зеленым - для работоспособных сертификатов, красным - нет.
Информацию можно получить при помощи самого сертификата.

Try { return cert.IsValid().Result; } catch (e) { return false; }
Стоит отметить, что сама по себе данная проверка имеет малую ценность, ибо все причины не может отсечь.
Но самые базовые, например, проверка даты - проверяет.

В value у option запишем отпечаток cert.Thumbprint .
Можно порядковый номер записать, можно другие данные - на ваше усмотрение.

Подписание
Ну и, собственно, самый главный шаг, к которому мы стремились - подписание.

1) Находим выбранный сертификат.
Для нашего примера:

Certs.Find(0, thumbprint).Item(1)
0 - означает, что мы ищем по отпечатку
1 - что используем первый результат выборки (по факту единственный)

2) Подписываем:

If (isActiveX()) { var CPSigner = new ActiveXObject("CAdESCOM.CPSigner"); } else { var CPSigner = objSign.CreateObject("CAdESCOM.CPSigner"); } CPSigner.Certificate = cert; if (isActiveX()) { var SignedData = new ActiveXObject("CAdESCOM.CadesSignedData"); } else { var SignedData = objSign.CreateObject("CAdESCOM.CadesSignedData"); } SignedData.Content = text; return SignedData.SignCades(CPSigner, 1, false);

Где cert - сертификат, при помощи которого подписываем
text - собственно, что подписываем
Ну а в return возвращается подписанное сообщение.

P.s. По максимуму код постарался вычистить от специфики проекта. Если кому-то этот материал пригодится и будет интересно - напишу и серверную часть. Проверка подписанного сообщения (с цепочкой и без), проверка сертификата (ocsp и без), использования tsp и т.д.

Теги: criptopro, ЭЦП, openssl, cades, javascript

Похожие статьи