Show/Hide Toolbars

Руководство администратора

КриптоПро/РуТокен

Ссылки Назад Вверх Вперед

Удостоверяющий центр КриптоПро отвечает за управление сертификатами на электронные подписи — выдачу, проверку, отзыв, приостановку, возобновление. В настоящее время поддерживается работа с плагинами CryptoPro или RuToken для браузера Chrome.

Часть действий выполняется на уровне сервера (это обмен данными между серверами "Первой Формы" и КриптоПро), эти действия автоматизируются с помощью смартов. Часть действий выполняется на уровне клиента (это обмен данными со считывающим устройством), эти действия автоматизированы с помощью JS API.

Процесс подписания ЭП с помощью КриптоПро

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

При неудачно завершенном диалоге (пользователь закрыл диалог) резолюция по подписи в "Первой Форме" не регистрируется.

При удачно завершенном диалоге в "Первой Форме" регистрируется вынесенная резолюция. Формируется ЭП (хеш файла) записывается в соответствии с настройками подписи: ЭП может добавляться в исходный файл (если этот файл имеет формат DOCX или PDF), а может храниться в базе данных отдельно от файла. Рядом с названием подписанного файла отображается кнопка "Посмотреть хеш".

При выполнении перехода можно подписать сразу несколько документов (комплект), в этом случае подпись генерируется отдельно для каждого документа.

При удалении исходных файлов удаляются и файлы с ЭП.

Порядок настройки

1. Установите и настройте Диспетчер удостоверяющего центра (см. Руководство по техподдержке).

2. Привяжите УЦ к "Первой Форме"

3. Настройте рабочие места пользователей

4. Настройте подписи с включенным признаком ЭЦП на нужных переходах маршрута

5. Автоматизируйте действия с сертификатами

Привязка УЦ к "Первой Форме"

1. Привязка удостоверяющего центра.

В интерфейсе администратора "Первой Формы" перейдите в раздел Система — КриптоПро — Удостоверяющие центры КриптоПро. Добавьте новый удостоверяющий центр или настройте созданный ранее. Подробнее о параметрах настройки можно узнать в Справочнике по интерфейсу администратора.

2. Привязка плагина.

В интерфейсе администратора "Первой Формы" перейдите в раздел Система — КриптоПро — Выбор плагина. Выберите один из доступных плагинов и нажмите кнопку Сохранить.

Настройка рабочего места пользователя

1. Если вы используете носители КриптоПро, на компьютер, с которого будет происходить подписание, установите следующее ПО:

плагин КриптоПро (ссылка на сайт КриптоПро). Не забудьте его включить!

КриптоПро CSP (ссылка на сайт КриптоПро)

корневой сертификат удостоверяющего центра, выдавшего ЭП

2. Если вы используете носители РуТокен, на компьютер, с которого будет происходить подписание, установите следующее ПО:

плагин Рутокен (ссылка на сайт РуТокен). Не забудьте его включить!

корневой сертификат удостоверяющего центра, выдавшего ЭП

Настройка подписи в "Первой Форме"

1. В интерфейсе администратора откройте настройки категории, в которой вы хотите настроить подписание с помощью ЭП, и перейдите на вкладку Маршрут.

2. Откройте настройки перехода, на котором будет запрашиваться подпись, и перейдите на вкладку Подписи на переходе.

3. Добавьте подпись или используйте подпись, добавленную ранее. У подписи включите признак ЭЦП. Перейдите во вкладку Настройки ЭДС.

4. Выберите СКЗИ КриптоПро/РуТокен.

cryptopro-m1

Выбор СКЗИ

5. Нажмите кнопку Добавить. Настройте перечень файлов, которые будут подписаны с помощью ЭП.

cryptopro-m2

Форма добавления настройки ЭЦП

6. Выберите ДП, в котором будет храниться файл для подписания, или смарт-выражение, которое будет возвращать коллекцию FileID.

warning_icon Если выбрать Фиксированное значение, то можно подписывать только файлы, вложенные в ДП "Файл", а если выбрать Smart-выражение, то можно подписывать файлы, вложенные в ДП "Файл" или ДП "Таблица", а также файлы, вложенные в задачу.

7. Выберите ИНН юр.лица (вы можете выбрать фиксированное значение из выпадающего списка или указать смарт-выражение, которое будет возвращать  ДП, ведущее к ИНН). Настройка позволяет определять юридическое лицо из сертификата сотрудника и не разрешать подписывать сертификатом одного юр.лица документы другого.

warning_icon После выбора ИНН пользователь перед применением подписи получит ограниченный список сертификатов. Если сотруднику доступен только один сертификат, всплывающее окно с выбором не будет выводиться на экран, а доступный сертификат будет использоваться по умолчанию.

8. Если необходима проверка машиночитаемой доверенности (это доверенность в XML-формате с правом подписи сотрудника от лица компании), отметьте опцию "МЧД". Если опция "МЧД" активна, перед подписанием ЭЦП будет происходить проверка наличия МЧД у подписывающего пользователя. Если МЧД отсутствует, подпись не будет обработана.

9. Если отмечена опция "МЧД", задайте смарт-выражение для поиска машиночитаемой доверенности и файла электронной подписи SIG. В смарт-выражении должен возвращаться массив двух числовых значений : FileId XML и FileId SIG-файла.

10. Выберите вид подписи: открепленная или прикрепленная.

11. Один файл может быть подписан неограниченным количеством подписей. Для этого в каждой подписи надо выбрать один и тот же ДП типа файл в настройках ЭЦП. Для генерации файла с накоплением ЭЦП нужно в настройках всех подписей поставить галочку "Соподпись", тогда каждая последующая будет прикрепляться к предыдущей.

Действия с сертификатами

Выдать сертификат

Последовательность действий:

Подготовить начальные данные (smart)

Строку с данными о пользователе.

Строку с данными о сертификате.

Форматы данных см здесь.

1. Зарегистрировать пользователя (smart)

На основе начальных данных из строки XML генерируется уникальный идентификатор пользователя (RA_User_ID).

2. Создать запрос на сертификат (js)

На основе строки с данными о пользователе (RequestString) генерируется зашифрованная строка для отправки в удостоверяющий центр (Request).

3. Выдать сертификат (smart)

На основе зашифрованной строки (Request) и уникального идентификатора пользователя (RA_User_ID) отправляется запрос в удостоверяющий центр. В ответ возвращается идентификатор запроса (RequestID) и сгенерированный сертификат (Certificate).

4. Записать сертификат (js)

Другие доступные действия

Приостановить сертификат (smart)

Отозвать сертификат (smart)

Восстановить сертификат (smart)

Сменить pin-код (smart) + (js)

Формат данных о сертификате и пользователе

Данные о пользователе

Данные о пользователе передаются в формате XML. Комбинация значений полей должна быть уникальна (чтобы обеспечить уникальность, можно в качестве одного из параметров использовать текущее время).

В общем случае структура XML включает секции From (содержит исходные значения) и To (содержит целевые значения). Если выполняется первоначальное создание сертификата, секция From может опускаться. Если выполняется изменение данных, должны присутствовать обе секции.

Данные о сертификате

Данные о сертификате передаются в УЦ КриптоПро в следующем формате

Пример

SMART для работы с КриптоПро

CryptoPro CA - Issue certificate

CryptoPro CA - new or update user

CryptoPro CA - pause certificate

CryptoPro CA - resume certificate

CryptoPro CA - revoke certificate

Get Thumbprint

JS API для работы с КриптоПро

Метод

Что делает

Параметры

Вызов

tcCryptoLogic.newRequest

Создает запрос на сертификат

Номер задачи,

ID ДП, в котором записана строка запроса,

ID ДП, в котором записан запрос после обработки сервером КриптоПро

Строка формата JSON, вида {extParamsId:{ContainerName: 'Container_EP_ID'}}, где Container_EP_ID — это ID ДП, в котором записано название носителя

tcCryptoLogic.newRequest(window.taskId, RequestString_EP_ID, Request_EP_ID, {extParamsId:{ContainerName: 'Container_EP_ID'}})

где RequestString_EP_IDID ДП, в котором записана строка запроса,

Request_EP_ID — ID ДП, в котором записан запрос,

Container_EP_ID — ID ДП, в котором записано название носителя.

warning_icon Носитель хранит выданные сертификаты. Если название носителя указано в автоматизации, пользователю не придется выбирать его вручную. На одном носителе может содержаться несколько отдельных контейнеров. Название имеет вид:

\\.\модель_считывателя\название_контейнера

tcCryptoLogic.installCertificate

Записывает сертификат на носитель

Номер задачи,

ID ДП, в котором записан сертификат CryptoPro

tcCryptoLogic.installCertificate(window.taskId, Certificate_EP_ID).then(function (response) { $('#stepBtnUnderTaskText1312').click(); $('#ctl00_body > div.sweet-alert.showSweetAlert.visible > div.sa-button-container > div > button').click(); }, function (ex) { dialogs.error("Текст сообщения об ошибке"); })

где Certificate_EP_ID — ID ДП, в который записан сертификат,

#stepBtnUnderTaskText1312 — ID смарт-кнопки, на которую настроен вызов функции

tcCryptoLogic.changePin

Сменить пин-код

ID ДП, содержащего отпечаток подписи Thumbprint
(при работе с плагином CryptoPro отпечаток генерируется смарт-действием Get_Thumbprint;
при работе с плагином RuToken смарт-автоматизация не нужна)

При работе с плагином CryptoPro:

tcCryptoLogic.changePin(Thumbprint_EP_ID)

где Thumbprint_EP_ID — ID ДП, содержащего отпечаток подписи

При работе с плагином RuToken:

tcCryptoLogic.changePin()

Пример работы с сертификатом КриптоПро

Действия с сертификатами выполняются вручную, с помощью настраиваемых кнопок.

Подготовка

Создать Удостоверяющий центр КриптоПро (его ID используется в настройках смарт-действий).

Создать две категории: категория "Пользователи" для привязки сертификатов УЦ КриптоПро к пользователям "Первой Формы" и категория "Сертификаты" для выполнения действий над этими сертификатами.

warning_icon Для работы должен быть установлен и включен плагин КриптоПро для браузера — CryptoPro или RuToken.

cryptopro_plugin

Плагин CryptoPro для браузера установлен и включен

Категория "Пользователи"

Категория содержит следующие ДП:

ДП

Тип

Описание

ID ДП в данном примере

UserId

Текст

GUID пользователя в УЦ КриптоПро

11

Xml

Текст

Данные о пользователе

22

Эти ДП не отображаются при создании новой задачи.

Категория "Сертификаты"

Категория содержит следующие ДП:

ДП

Тип

Описание

ID ДП в данном примере

RequestString

Текст

Строка с запросом. В ней могут быть указаны данные о пользователе (заполнять необязательно)

33

Request

Текст

Строка запроса сертификата в УЦ КриптоПро

44

RequestId

Текст

GUID запроса на сертификат в УЦ КриптоПро

55

UserId

Текст

GUID пользователя в УЦ КриптоПро (полученный при регистрации пользователя, см. выше категорию "Сертификаты")

66

Certificate

Текст

Полученный сертификат

77

Container

Текст

Название контейнера, хранящего сертификат

88

Эти ДП не отображаются при создании новой задачи.

Автоматизация в категории "Пользователи"

Кнопка Зарегистрировать

Смарт-пакет: "Зарегистрировать пользователя" с действием "CryptoPro CA — new or update user"

cryptopro_4

Смарт-пакет для регистрации пользователя в УЦ КриптоПро

Автоматизация в  категории "Сертификаты"

Кнопка Создать запрос на сертификат

JavaScript выражение

Кнопка Выдать сертификат

Смарт-пакет: "Выдать сертификат" с действием "CryptoPro CA — Issue certificate"

cryptopro_1

Смарт-пакет для выдачи сертификата

cryptopro_2

Смарт-действие для выпуска сертификата

В смарт-действии Issue certificate заполняются ДП, поэтому после него нужно обновить задачу и обновить карточку задачи.

cryptopro_3

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

Кнопка Записать сертификат

JavaScript выражение

Работа в пользовательском режиме

В категории "Пользователи"

1. В ДП Xml запишите строку с данными о пользователе по образцу:

<ProfileAttributesChange><To><Attribute Oid="2.5.4.3" Value="ФИО_пользователя"/></To></ProfileAttributesChange>

(может использоваться ФИО пользователя, его ID в "Первой Форме" или другая информация).

2. Нажмите кнопку Зарегистрировать. По xml-данным пользователя будет выполнена регистрация в УЦ КриптоПро — заполнится ДП UserId, необходимый для дальнейшей работы с сертификатами.

В категории "Сертификаты"

1. Скопируйте в ДП UserId значение, полученное при регистрации (см. выше п.2 в категории "Пользователи").

2. Нажмите кнопку Создать запрос на сертификат. В ДП Request будет записана строка запроса сертификата.

3. Нажмите кнопку Выдать сертификат и следуйте указаниям программы. По окончании в ДП RequestId и Certificate будут записаны данные.

4. Нажмите кнопку Записать сертификат. Сгенерированные данные будут переданы в УЦ КриптоПро.

Другие действия

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

Ошибки при работе с УЦ КриптоПро

1. Ошибки, возникающие при работе УЦ КриптоПро, можно посмотреть в журнале.

Кликните мышью для просмотра изображения в полном размере

Журнал ошибок УЦ КриптоПро

2. Алгоритм создания подписи и алгоритм ключа проверки подписи должны быть одинаковыми. Рекомендуется использовать ГОСТ Р 34.10-2012. Если невозможно использовать одинаковые алгоритмы, необходимо отключить контроль соответствия:

В реестре Windows в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\CC2 нужно добавить параметр DisableGostCspConformityCheck типа DWORD со значением, отличным от нуля. При эксплуатации УЦ для выпуска квалифицированных подписей этот контроль должен быть включен.

Полезные ссылки