- Linux cryptopro5 подпись файлов и установка
- Необходимый инструмент
- Перенос контейнера с flash-носителя в локальное хранилище пк
- Проверка pfx сертификата
- Просмотр сертификатов
- Процедура создания pfx сертификата
- Работа с криптоконтейнерами
- Удаление сертификатов
- Установка корневых сертификатов
- Установка личных сертификатов
- Установка сертификатов pfx
- Заключение
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.