КриптоПро: создание тестового сертификата

Про то как работать с КриптоПро, как создавать и добавлять сертификаты на платформе Windows, в интернете куча информации. Для Linux систем информации меньше. И вся она разрозненная. Поэтому немного полезностей для разработчика, работающего в Linux.

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

Исходим из того что все пакеты КриптоПро установленны на локальном компьютере разработчика.

А так же предполагаем что уже созданно хранилище для сертификатов. Проверить наличие хранилища можно с помощью команды

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc

В этом случае будет выведен список сертифкатов в хранилище в следующем формате:

\\.\HDIMAGE\cert1 
\\.\HDIMAGE\cert2 

Где собственно HDIMAGE название хранилища и обозначает что сертификаты хранятся на жестком диске.

Если такого хранилища не существует, то его можно создать (из под пользователя root):


/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store

Теперь добавляем в хранилище контейнер для сертификата:


/opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -cont '\\.\HDIMAGE\cert3'

Утилита попросит понажимать клавиши, для генерации случаных чисел. Так же попросит ввести пароль для доступа к контейнеру. Лучше ввести пустой пароль – нажать Enter два раза. Так проще и меньше проблем будет при дальнейшей работе.

Теперь создадим запрос на получение сертификата для созданного контейнера cert3


/opt/cprocsp/bin/amd64/cryptcp -creatrqst -dn "INN=007814508921, E=user@site.ru, C=RU, CN=Иванов Иван Иванович, SN=Иванов" -nokeygen -both -ku -cont 'cert3' cert3.req

В параметре -dn указываются данные, которые будут хранится в поле Subject сертификата. Созданый запрос будет сохранен в файле cert3.req. Эти данные нужны для получения сертификата в удостоверяющем центре. Для тестового сертификата можно воспользоваться тестовым удостоверяющим центром КриптоПро.

Адрес сайта тестового УЦ: http://www.cryptopro.ru/certsrv/

Нам нужен пункт «Отправить запрос, используя base-64 шифрованный файл PKCS #10 или PKCS #7». На следующей странице в поле «Сохраненный запрос» вставляем содержимое файла cert3.req и нажимаем кнопку «Выдать».

Если все прошло успешно, то будет показано сообщение что сертификат выдан. Выбираем «DER-шифрование» и нажимаем ссылку «Загрузить цепочку сертификатов». Скаченный файл сохраняем с именем cert3.p7b (или любым другим, главное запомнить его, чтобы потом найти для следующей операции).

Теперь надо установить полученный сертификат в контейнер:

/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file ./cert3.p7b -cont '\\.\HDIMAGE\cert3'

Т.е. Устанавливаем полученный сертифкат в контейнер cert3. Так как мы выбрали цепочку сертификатов, то при установке утилита попросит ввести номер устанавливаемого сертификата. Смотрим по Subject какой сертификат «наш» и устанавливаем его. Второй сертификат — это корневой сертификат и его надо установить отдельно.

Корневой сертификат устанавливается с правами пользователя root:

sudo /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file ./cert3.p7b

Проверить что все установилось корректно и посмотреть список сертификатов можно с помощью команды:


/opt/cprocsp/bin/amd64/certmgr -list

Особое внимание в данных сертификата следует уделить на поле «PrivateKey Link». Если там значение «No», то значит где-то возникли ошибки и возможно не был добавлен корневой сертификат или еще что-то.
Работосопобность установленного сертификата можно проверить на следующей странице: http://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html

Там используется КриптоПро ЭЦП Browser plug-in. Но раз вы собрались работать с ЭЦП, то либо уже у вас есть, либо понадобится в скором времени. Ставится он довольно легко и существует под все основные браузеры.

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

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

Сделать это можно командой:

/opt/cprocsp/sbin/amd64/cpconfig -license -view

Если лицензии нет или срок триала уже истек, то самый простой способ — это купить лицензию. Здесь рассказывается где это можно сделать быстро и без проблем: http://blog.pws.ru/2014/04/14/crypto-pro-license/

Запись опубликована в рубрике ЭДО для идиотов с метками , , . Добавьте в закладки постоянную ссылку.

1 комментарий на «КриптоПро: создание тестового сертификата»

  1. Уведомление: Установка ключа в КриптоПро и работа с ним | newman блог

Добавить комментарий