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

Работа с сертификатами КриптоПро ЭЦП

Linux cryptopro5 подпись файлов и установка

если во время установки, к примеру от пользователя www-data, произошла ошибка во время установке pfx, убедитесь, что

Необходимый инструмент

Создание PFX сертификата а из PEM сертификата штатными средствами Windows “из коробки” не поддерживается. Соответственно, мы будем использовать сторонее решение – OpenSSL for Windows.

Переходим по указанной выше ссылки и загружаем дистрибутив программного продукта:

Копия дистрибутива от 03.09.2021 доступна ниже:

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

Перенос контейнера с flash-носителя в локальное хранилище пк

1. Активируем хранилище HDIMAGE:

cpconfig -hardware reader -add HDIMAGE store 

Adding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0

2. Посмотрим, какие контейнеры доступны на флешке:

csptest -keyset -enum_cont -fqcn -verifyc 

CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 32114099
\.FLASHbob
OK.
Total: SYS: 0,020 sec USR: 0,080 sec UTC: 0,190 sec
[ErrorCode: 0x00000000]

Проверка pfx сертификата

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

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

Просмотр сертификатов

1. Просмотр установленных сертификатов:

certmgr -list

2. Просмотр установленных сертификатов в локальном хранилище uMy:

certmgr -list -store uMy

3. Просмотр сертификатов в хранилище ПК (обычно сюда устанавливаются корневых сертификаты):

$ certmgr -list -store uRoot

4. Просмотр сертификатов в контейнере:

certmgr -list -container '\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4'

5. Просмотр промежуточных сертификатов:

certmgr -list -store uca

Процедура создания pfx сертификата

Для того, чтобы выполнить непосредственную конвертацию PEM сертификата в PFX выполните следующие действия:

1. Запустить командную строку от имени администратора.

2. Перейдите в директорию bin в папке с установленным дистрибутивом OpenSSL:

cd "C:Program Files (x86)GnuWin32bin"

3. Выполните следующую команду:

Работа с криптоконтейнерами

1. Проверить наличие доступных контейнеров:

csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251  

CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 16778675
\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4
\.FLASHbob
\.HDIMAGEbob
OK.
Total: SYS: 0,010 sec USR: 0,110 sec UTC: 6,240 sec
[ErrorCode: 0x00000000]

Имена контейнеров используются для установки личных сертификатов.

  • Считыватель HDIMAGE размещается в /var/opt/cprocsp/keys/<имя пользователя>/ т.е в данном случае используется жесткий диск для хранения ключей.
  • Считыватель FLASH означает, что используется флешка для хранения приватных ключей.
  • Также считывателем может выступать токен.

2. Имена контейнеров могут содержать символы на кириллице, поэтому чтобы корректно отобразить контейнеры используйте следующую команду:

csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251

Для дальнейшего использования имен контейнеров содержащих кодировку cp1251, выведем список контейнеров с уникальными именами:

csptest -keyset -enum_cont -fqcn -verifyc -uniq 

CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 23397811
\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4 | \.Aladdin R.D. JaCarta 00 00SCARDJACARTA_6082028344937676CC00E412
OK.
Total: SYS: 0,000 sec USR: 0,110 sec UTC: 6,230 sec
[ErrorCode: 0x00000000]

3. Просмотр подробной информации о контейнере:

csptest -keyset -container '\.HDIMAGEbob' -info

4. Перечисление контейнеров пользователя:

csptest -keyset -enum_cont -verifycontext -fqcn

5. Перечисление контейнеров компьютера:

csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys

6. Открыть(проверить) контейнер пользователя:

csptest -keyset -check -cont '\.имя считывателяимя контейнера'

7. Открыть(проверить) контейнер компьютера:

csptest -keyset -check -cont '\.имя считывателяимя контейнера' -machinekeyset

Удаление сертификатов

1. Удалить сертификат из личного хранилища сертификатов

Просмотрите установленные сертификаты:

certmgr -list

Изучите список всех установленных сертификатов (в общем списке отображаются абсолютно все сертификаты).

Для удаления следует выполнить команду в Терминале:

certmgr -delete -store uMy

Если установлено более одного сертификата, то будет предложено указать номер удаляемого сертификата.

2. Удалить сертификаты, установленные в хранилище КриптоПро:

certmgr -delete -store uRoot

Если установлено более одного сертификата, то будет предложено указать номер удаляемого сертификата.

3. Удалить все сертификаты, установленные в хранилище КриптоПро:

certmgr -delete -all -store uRoot

4. Удалить все сертификаты, установленные в хранилище ПК:

certmgr -delete -store mRoot

Установка корневых сертификатов

При установке корневых сертификатов достаточно указать хранилище uRoot. При указании mRoot (при наличии прав администратора) корневой сертификат будет доступен всем пользователям системы.

1. Установка в хранилище КриптоПро:

certmgr -inst -store uRoot -file <название-файла>.cer

2. Установка в хранилище ПК:

certmgr -inst -store mRoot -file <название-файла>cer

3. Установка списка отозванных сертификатов crl:

certmgr -inst -crl -file <название-файла>.crl

Установка личных сертификатов

1. Установка сертификата без привязки к ключам:

certmgr -inst -file cert_bob.cer

2. Установка личного сертификата cert_bob.cer, сертификат при этом попадает в пользовательское хранилище uMy. Приватный ключ находится на флешке.

certmgr -inst -file cert_bob.cer -store uMy -cont '\.FLASHbob'

в команде указывается сертификат cert_bob.cer, который ассоциируется с приватным контейнером \.FLASHbob’

3. Установка сертификата с токена (в конце команды указывается контейнер)

/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4'

Установка сертификатов pfx

1. Необходимо установить пакет cprocsp-rsa, который находится в составе дистрибутива КриптоПро (linux-amd64).

2. Выполним команду от локального (доменного) пользователя:

/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -pfx -pin <пинкод> -file 'путь до pfx'

Цепочка сертификатов будет отображаться в утилите «Ключевые носители и сертификаты» в «Личное хранилище сертификатов».

Заключение

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

Оцените статью
ЭЦП64
Добавить комментарий