Правила установки плагина КриптоПро CSP в Mozilla Firefox отличаются в зависимости от версии браузера - 52 и выше, либо более старая.
Чтобы подписывать документы в Mozilla Firefox:
Для установки КриптоПро Browser plug-in необходимо выполнить действия:
2. В окне установки КриптоПро Browser plug-in нажмите кнопку «Да» (Рис. 2-а).
Рис. 2-а. Установка КриптоПро Browser plug-in3. Дождитесь завершения установки (Рис. 2-б).
Рис. 2-б. Установка КриптоПро Browser plug-in4. Нажмите кнопку «Ок» и перезапустите интернет-браузер (Рис. 2-в).
Рис. 2-в. Установка КриптоПро Browser plug-inВажно
После установки КриптоПро Browser plug - in необходимо проверить, установлено ли в браузере дополнение для работы с электронной подписью КриптоПро ЭЦП Browser plug-in для браузеров.
5. Откройте браузер, нажмите кнопку «Меню браузера», выберите раздел «Дополнения» (Рис. 3).
Рис. 3. Меню браузера6. Откройте вкладку «Плагины». Напротив плагина «CryptoPro CAdES NPAPI Browser Plug-in» в выпадающем меню выберите опцию «Всегда включать» (Рис. 4).
7. Перезапустите браузер.
Для установки КриптоПро Browser plug-in выполните действия:
Рис. 5. Сайт КриптоПро
2. Нажмите «Разрешить» (Рис. 6).
Рис. 6. Разрешение запроса
3. Нажмите «Добавить» (Рис. 7).
Posted on 03.02.2016 in
Программный интерфейс плагина предполагает вызов асинхронных операций, реализованных на основе объектов promise. Подробнее про использованную в реализации плагина спецификацию можно прочитать . На promise необходимо устанавливать обработчики двух типов:
Для работы с плагином необходимо вызвать функцию инициализации PKCS#11-компонента plugin.initPKCS11 . Данная функция в качестве параметров принимает перечень названий модулей (в виде массива). Перечень предусмотренных модулей можно посмотреть . Если модули не указаны, то плагин произведет инициирование всех модулей.
При необходимости указать, какие именно криптопровайдеры следует использовать при работе модуля capi, следует использовать следующий формат записи:
Capi:{prov1},{mode}:{prov2},{mode}
В этой записи:
Для получения ключей из системного хранилища Windows следует в качестве провайдера указать
Пример инициирования всех модулей:
Plugin.initPKCS11(["ISBC ESMART", "Aladdin R.D. Unified JaCarta", "Rutoken", "SafeNet", "capi:Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider,0:Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider,0:Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider,0:Signal-COM CPGOST Cryptographic Provider,0:Signal-COM GOST R 34.10-2012 (256) Cryptographic Provider,0:Signal-COM GOST R 34.10-2012 (512) Cryptographic Provider,0:Infotecs Cryptographic Service Provider,0:
Пример инициирования модуля для получения ключей из системного хранилища Windows:
Plugin.initPKCS11(["capi:
При успешной инициализации функция возвращает объект (здесь и далее – с помощью механизма promise), имеющий функции modules и getCertsForSign .
Для просмотра перечня модулей и их состояния необходимо вызвать функцию modules .
Пример запроса:
Pkcs11.modules.then(onFulfilled, onRejected);
Пример ответа функции (разрывы даны для удобства чтения):
[ { "enable": true, "name": "Aladdin R.D. Unified JaCarta" }, { "enable": true, "name": "Rutoken ECP" }, { "enable": false, "error": "100:failed to load p11 module", "name": "ISBC ESMART" } ]
Для просмотра перечня обнаруженных сертификатов необходимо вызвать функцию getCertsForSign . В качестве параметра вызова функции необходимо указать, следует ли использовать параллельный режим опроса инициализированных PKCS#11 модулей:
Для просмотра данных о конкретном сертификате необходимо вызвать свойство full_info , возвращающее сведения о сертификате в виде json-объекта. Он включает в себя следующие параметры:
Для просмотра данных о конкретном ключе электронной подписи сертификата необходимо вызвать метод token_info . Метод возвращает json-объект со следующими данными:
Простой режим подписания
Для подписания строки с помощью выбранного сертификата необходимо вызвать функцию cms_sign_on_it , принимающую следующие входные параметры:
Расширенный режим подписания
Расширенный режим позволяет:
Для подписания данных с помощью выбранного сертификата необходимо предварительно инициализировать объект signer с помощью функции start_signing на объекте сертификата. Параметры функции:
На объекте signer будут доступны методы:
Подписание строки
Пример команды, позволяющей подписать строку:
Signer.add_data_in_string("1234").then(function(res){ return signer.finish();}).then(function(cms){console.log(cms)});
В данной команде «1234» — это строка, которую необходимо подписать.
Установка нескольких подписей
После финализации подписи объект signer возвращается в исходное состояние. В рамках сессии его можно использовать повторно для подписания других данных, например, нового файла. В этом случае пин-код не будет запрошен повторно.
Чтобы произвести подписание на другом сертификате, необходимо очистить объект signer . В большинстве браузеров этот объект очищается автоматически, когда он покидает область видимости (scope). Однако в Internet Explorer возможны ситуации, когда очищение signer не происходит, что приводит к ошибке. Для избегания ошибки рекомендуется явно очищать signer.free() . Данную операцию можно проводить во всех браузерах, чтобы унифицировать код. Пример подписи на сертификате с очисткой объекта signer:
Function sign(cert, info) { function successCms(signature) { alert(signature); } cert.start_signing(false, 3) .then(function(signer) { signer.add_data_in_base64("MTIzNDU2") .then(function() { var data = signer.finish(); var free = signer.free(); return data; }, e) .then(successCms, e); }, e); }
Подписание файла большого объема
Function readFileByChunk(file, cbToRead, cbToFinish) { var fileSize = file.size; var chunkSize = 1024*1024; // bytes var offset = 0; var chunkReaderBlock = null; var self = this; var readEventHandler = function(evt) { if (evt.target.error == null) { cbToRead(evt.target.result, offset, fileSize); offset += evt.target.result.byteLength; } else { console.error("Read error: " + evt.target.error); showError("Ошибка чтения файла: " + evt.target.error); return; } if (offset >= fileSize) { cbToFinish() return; } // to the next chunk chunkReaderBlock(offset, chunkSize, file); } chunkReaderBlock = function(_offset, _chunkSize, _file) { var r = new FileReader(); if (_file.slice) { var blob = _file.slice(_offset, _chunkSize + _offset); } else if (_file.webkitSlice) { var blob = _file.webkitSlice(_offset, _chunkSize + _offset); } else if (_file.mozSlice) { var blob = _file.mozSlice(_offset, _chunkSize + _offset); } r.onload = readEventHandler; r.readAsArrayBuffer(blob); } // start reading the first block chunkReaderBlock(offset, chunkSize, file); }
Следует учесть, что поскольку подписание выполняется локально, то для последующей передачи выбранного пользователем файла и подписи на сервер необходимо реализовать соответствующую логику на стороне веб-страницы.
Всем привет! Наверняка, многие пользователи могли наблюдать на своем экране монитора ошибку «Не удалось загрузить плагин» при воспроизведении онлайн аудио, видео либо при попытке запустить какую нибудь флеш-анимацию (игру, баннер, приложение и пр.). Если Вы попали на эту страницу, то вероятнее всего Вы увидели похожую ошибку. Сегодня в этой небольшой инструкции мы с Вами устраним ошибку «Не удалось загрузить плагин » в браузере быстро и легко.
Сперва, друзья, давайте разберемся, что вообще такое плагин в браузере. Плагин – это другими словами дополнение, которое расширяет возможности интернет-браузера. Плагинов на сегодняшний день огромное количество, и все они разного направления. В любом браузере установлены базовые плагины, дабы правильно отображать веб-ресурсы. Если в браузере появилось сообщение о том, что не удалось загрузить плагин, то, скорее всего, проблема в Flash Player. Ниже мы с Вами рассмотрим несколько способов, благодаря которым можно исправить данную ошибку.
Cache – временные файлы браузера, которые хранят в себе все веб-компоненты просмотренных ресурсов (изображения, страницы, видеофайлы, дизайн и пр.). Благодаря КЭШу браузер быстро загружает страницы ранее посещаемых сайтов, так как загрузка компонентов ресурса осуществляется не через интернет, а с локального диска компьютера.
Cookie – также временные файлы, в которых хранится персональные данные юзера (логины, пароли, настройки сайтов и пр.). При переходе на какую либо страницу все эти данные браузер отсылает на сервер, и поэтому мы можем заходить на любой ресурс, не вбивая заново логин и пароль для авторизации.
Итак, давайте же очистим Cache и Cookie в своем браузере, дабы попытаться устранить ошибку. Идем в меню, выбираем «История».
Если используете Chrome, то вбивайте в адресной строке chrome://plugins
Если используете Yandex, то вбивайте в адресной строке browser://plugins
Если используете Opera, то вбивайте в адресной строке opera://plugins
Если используете Firefox, то вбивайте в адресной строке аbout:plugins
) в разделе "Продукты" -> "КриптоПро ЭЦП Browser plug-in"
При запуске загруженного файла система выдаст запрос на повышение прав до администратора системы. Установка без администраторских прав невозможна.
После установки, обязательно перезапустите ваш браузер! Иногда (в случае использования Chrome) требуется перезагрузка системы, т.к. закрытие всех окон chrome не во всех случаях выгружает браузер из оперативной памяти.
Дополнительные настройки для FireFox версии 52.0 и новее
Не забудьте выполнить установки плагина
Для работы плагина в FireFox начиная c версии 52 необходимо установить свежую версию плагина (не ниже 2.0.12888)(см. ) и специальное расширение для FireFox.
Для установки расширения перейдите из вашего FireFox по ссылке . После перехода, Вам будет предложено установить расширение для FireFox - необходимо подтвердить установку, нажав Install (Установить).
После установки надстройки, её запуск разрешен только после подтверждения пользователем. Разрешить запуск надстройки можно либо только для текущего сайта или навсегда для всех сайтов
Вариант 1: настройка разрешения использования надстройки только для текущего сайта (https://www.сайт)
Когда возникла ошибка: Плагин загружен, но не создаются объекты обратите внимание на адресную строку - в ней появился значок надстройки:
Нажмите на этот значок - вам будет предложено запустить надстройку и запомнить разрешение запускать надстройку для этого сайта навсегда.
Вариант 2: настройка разрешения использования надстройки для всех сайтов
Откройте страницу с установленными дополнениями FireFox
В списке дополнения найдите CryptoPro CAdES NPAPI Browser Plug-in и измените его режим запуска на "Включать всегда"
Откройте страницу с поиском дополнения для установки:
Введите в строку поиска "CryptoPro" - будет найдено расширение "CryptoPro Extension for CAdES Browser Plug-in". Нажмите "Добавить в Opera" для установки.
Для Яндекс браузера нужно проделать процедуру, аналогичную случаю с Opera.
В случае успешной установки дополнения, при следующем запуске Chrome будет выдано сообщение с запросом подтверждения запуска надстройки
В данном диалоге необходимо разрешить использование расширения