Создание хранилища ключей
Ключевые пары и сертификаты должны находиться в хранилище ключей.
Ниже описаны действия по созданию хранилища ключей JKS.
Хранилище ключей представляет собой jks-файл (Java Key Store), в котором хранятся ключевые пары и сертификаты. Закрытые ключи в нем защищаются паролями, открытые ключи оборачиваются в сертификаты. Сертификаты являются самоподписанными и не могут быть использованы в квалифицированных подписях. Построить для них доверенную цепочку не получится и использовать их в Сервисе нельзя. Сначала необходимо обратиться в удостоверяющий центр (УЦ), чтобы получить для созданной ключевой пары доверенный сертификат.
Чтобы создать пару ключей с самоподписанным сертификатом и поместить в хранилище
keystore.jks, нужно выполнить команду вида:keytool -v -genkey -dname "CN=java-online.ru, OU=Developers, O=IT Systems Inc., L=Moscow, C=RF" \ -alias parent -storetype jks -keystore keystore.jks -validity 365 -keyalg RSA -keysize 2048 \ -storepass mystorepass -keypass mykeypass
В таблице ниже представлены атрибуты команды. Некоторые из них могут быть пропущены, в этом случае им будет присвоено значение Unknown.
| Атрибут | Описание |
|---|---|
-v | Параметр, позволяющий выводить сообщения о статусах |
-genkey | Команда для генерации ключевой пары с сертификатом |
-dname "CN=java-online.ru, OU=Developers, O=IT Systems Inc., L=Moscow, C=RF" | Параметры сертификата публичного ключа |
-alias parent | Псевдоним (alias), к которому будут относиться сгенерированные сущности |
-storetype jks | Тип хранилища ключей |
-keystore keystore.jks | Имя хранилища ключей |
-validity 365 | Срок действия сертификата |
-keyalg RSA | Алгоритм формирования ключей |
-keysize 2048 | Длина ключей |
-storepass mystorepass | Пароль от хранилища ключей |
-keypass mykeypass | Пароль от приватного ключа |
dname | Уникальное имя (distinquished name). Задается в виде разделенных через запятую атрибутов: - CN - common name (имя владельца); - OU -organizational unit or department/division (департамент/отдел); - O - organization name (наименование организации); - L - locality or city (город/местоположение);- ST - state or province; - C - country, two chars (страна) |
По умолчанию хранилище будет размещено в папке потребителя
HOMEPATH. Если хранилище с таким именем в указанной директории уже существует, то новая ключевая пара будет размещена в нем. В противном случае будет создано новое хранилище.HDImageStore и CertStore - это типы хранилищ, поставляемые провайдером КриптоПро. В хранилище типа HDImageStore хранятся контейнеры (папки) с артефактами ключей или сертификаты. Каждая папка соответствует одному алиасу (псевдониму). В хранилище типа CertStore хранятся сертификаты. Работать с такими хранилищами можно с помощью СКЗИ КриптоПро.
Чтобы создать новый алиас (контейнер):
-
На вкладке Хранилища ключей и сертификатов выделите нужное хранилище и нажмите на панели справа кнопку Создать.
-
Установите параметры:
- имя нового контейнера (алиас). Если указать существующее - данные в нем будут перезаписаны;
- имя владельца сертификата;
- флаг Пароль - для сохранения ключа с паролем;
- пароль - если был установлен флаг;
- тип провайдера.
-
Нажмите Создать. Будет сгенерирован ключ электронной подписи с самоподписанным сертификатом. Они будут помещены в контейнер с указанным именем, а этот контейнер - в текущее хранилище.
После создания контейнера Cервис предложит сохранить запрос на сертификат в УЦ. Этот запрос можно использовать для получения сертификата в УЦ. Полученный в УЦ файл сертификата можно поместить в соответствующий контейнер, нажав Добавить. При выполнении данного действия старый сертификат будет заменен новым.
В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
ЭЦП
Подпись загруженного документа, проверка подписи и расчёт хеша