3.4.23.1.4 Работа с сертификатами КриптоПро
Скачать документ Работа с криптоконтейнерами
Решение проблемы отсутствия контейнеров в КриптоПро в домене
Установка личных сертификатов
Установка корневых сертификатов
Установка сертификатов pfx
Просмотр сертификатов
Удаление сертификатов
Перенос контейнера с flash-носителя в локальное хранилище ПК
Просмотр цепочки сертификата
Для удобства использования утилит КриптоПро создадим на них символьные ссылки, для этого выполните:
ln -s /opt/cprocsp/bin/amd64/certmgr /usr/bin/certmgr ln -s /opt/cprocsp/bin/amd64/csptest /usr/bin/csptest ln -s /opt/cprocsp/sbin/amd64/cpconfig /usr/bin/cpconfig
Просмотр версии КриптоПро:
csptest -enum -info
или
cat /etc/opt/cprocsp/release
Проверка лицензии:
cpconfig -license -view
Для установки лицензии выполните (с правами root):
# cpconfig -license -set <серийный_номер>
При использовании токенов сервис pcscd должен быть запущен. Проверка статуса pcscd:
systemctl status pcscd
если он выключен, то включите его:
systemctl start pcscd systemctl enable pcscd
Вывод сообщений журнала службы pcscd:
pcscd -dffff
Узнать модель подключенного токена:
csptest -card -enum -v -v pcsc_scan
Работа с криптоконтейнерами
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 00\8df47e71-18ae-49c1-8738-9b4b0944dcd4 \\.\FLASH\bob \\.\HDIMAGE\bob 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 00\8df47e71-18ae-49c1-8738-9b4b0944dcd4 | \\.\Aladdin R.D. JaCarta 00 00\SCARD\JACARTA_6082028344937676\CC00\E412 OK. Total: SYS: 0,000 sec USR: 0,110 sec UTC: 6,230 sec [ErrorCode: 0x00000000]
3. Просмотр подробной информации о контейнере:
csptest -keyset -container '\\.\HDIMAGE\bob' -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. Создать udev-правило командой:
nano /etc/udev/rules.d/87-domain_usb.rules
Добавить в него следующее содержимое:
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
2. Выполнить перезапуск udev-правил:
udevadm control --reload
3. Проверить наличие файла /var/lib/AccountsService/users/<имя_пользователя>, где <имя_пользователя> – имя вашего доменного пользователя.
Если файла нет, его необходимо создать по примеру существующего.
Пример содержимого файла можно просмотреть в том же каталоге в файле локального пользователя:
cat /var/lib/AccountsService/users/user [User] Language= XSession= Icon=/home/user/.face SystemAccount=false
Перезагрузите систему для применения внесенных изменений.
Если вышеприведенное решение не помогло, следует переустановить КриптоПро, запустив скрипт uninstall.sh (скрипт находится в архиве с установщиком КриптоПро):
./uninstall.sh
Затем удалить оставшиеся каталоги:
rm -rf /opt/cprocsp /etc/opt/cprocsp /var/opt/cprocsp
После полного удаления потребуется произвести установку КриптоПро с udev-правилом, приведенным в п. 1.
Установка личных сертификатов
1. Установка сертификата без привязки к ключам:
certmgr -inst -file cert_bob.cer
2. Установка личного сертификата cert_bob.cer, сертификат при этом попадает в пользовательское хранилище uMy. Приватный ключ находится на флешке.
certmgr -inst -file cert_bob.cer -store uMy -cont '\\.\FLASH\bob'
в команде указывается сертификат cert_bob.cer, который ассоциируется с приватным контейнером \\.\FLASH\bob'
3. Установка сертификата с токена (в конце команды указывается контейнер)
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\Aladdin R.D. JaCarta 00 00\8df47e71-18ae-49c1-8738-9b4b0944dcd4'
Установка корневых сертификатов
При установке корневых сертификатов достаточно указать хранилище uRoot. При указании mRoot (при наличии прав администратора) корневой сертификат будет доступен всем пользователям системы.
1. Установка в хранилище КриптоПро:
certmgr -inst -store uRoot -file <название-файла>.cer
2. Установка в хранилище ПК:
certmgr -inst -store mRoot -file <название-файла>cer
3. Установка списка отозванных сертификатов crl:
certmgr -inst -crl -file <название-файла>.crl
Установка сертификатов pfx
1. Необходимо установить пакет cprocsp-rsa, который находится в составе дистрибутива КриптоПро (linux-amd64).
2. Выполним команду от локального (доменного) пользователя:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -pfx -pin <пинкод> -file 'путь до pfx'
Цепочка сертификатов будет отображаться в утилите «Ключевые носители и сертификаты» в «Личное хранилище сертификатов».
Просмотр сертификатов
1. Просмотр установленных сертификатов:
certmgr -list
2. Просмотр установленных сертификатов в локальном хранилище uMy:
certmgr -list -store uMy
3. Просмотр сертификатов в хранилище ПК (обычно сюда устанавливаются корневых сертификаты):
$ certmgr -list -store uRoot
4. Просмотр сертификатов в контейнере:
certmgr -list -container '\\.\Aladdin R.D. JaCarta 00 00\8df47e71-18ae-49c1-8738-9b4b0944dcd4'
5. Просмотр промежуточных сертификатов:
certmgr -list -store uca
Удаление сертификатов
1. Удалить сертификат из личного хранилища сертификатов
Просмотрите установленные сертификаты:
certmgr -list
Изучите список всех установленных сертификатов (в общем списке отображаются абсолютно все сертификаты).
Для удаления следует выполнить команду в Терминале:
certmgr -delete -store uMy
Если установлено более одного сертификата, то будет предложено указать номер удаляемого сертификата.
2. Удалить сертификаты, установленные в хранилище КриптоПро:
certmgr -delete -store uRoot
Если установлено более одного сертификата, то будет предложено указать номер удаляемого сертификата.
3. Удалить все сертификаты, установленные в хранилище КриптоПро:
certmgr -delete -all -store uRoot
4. Удалить все сертификаты, установленные в хранилище ПК:
certmgr -delete -store mRoot
Перенос контейнера с 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 \\.\FLASH\bob OK. Total: SYS: 0,020 sec USR: 0,080 sec UTC: 0,190 sec [ErrorCode: 0x00000000]
3. Перейдите на Flash-носитель и скопируйте этот контейнер — каталог bob.000 с приватными (закрытыми) ключами в /var/opt/cprocsp/keys/user - в этом каталоге находится локальное хранилище HDIMAGE
4. Посмотрим доступные контейнеры:
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: 36951475 \\.\FLASH\bob \\.\HDIMAGE\bob OK. Total: SYS: 0,000 sec USR: 0,070 sec UTC: 0,160 sec [ErrorCode: 0x00000000]
Как видим, появился новый контейнер \\.\HDIMAGE\bob
Теперь flash-носитель можно отключить, он нам больше не понадобится.
5. Установим пользовательский сертификат с привязкой к закрытому контейнеру \\.\HDIMAGE\bob
certmgr -inst -file cert-bob.cer -cont '\\.\HDIMAGE\bob'
Просмотр цепочки сертификата
Просмотр необходимых корневых сертификатов и сертификатов отзыва вы можете посмотреть следующей командой:
1) Для сертификатов, хранящихся в личном хранилище:
certmgr -list -store uMyИнтересующие строки, информирующие о необходимом сертификате начинаются со слов
URL сертификата УЦ URL списка отзываИли в английском варианте:
CA cert URL CDP
2) Для просмотра цепочки на токене выполните следующую команду:
certmgr -list -cont '<CONTAINER>'
Где вместо '<CONTAINER>' укажите ваш контейнер, к примеру '\\.\Aladdin R.D. JaCarta 00 00\8df47e71-18ae-49c1-8738-9b4b0944dcd4'
3. Просмотр цепочки из файла сертификата:
certmgr -list -file 'путь_к_файлу'
Дата последнего изменения: 19.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.