Установка КриптоПро на RELS

Материал из Rosalab Wiki
Версия от 18:17, 10 июля 2017; Oleg Mihailov (обсуждение | вклад) (Некоторые полезные команды)

Перейти к: навигация, поиск

Начальные требования

Установленная система ROSA Enterprise Linux Server 6.7 в конфигурации «Стандартный сервер РОСА», доступ к репозиториям (для этого нужно использовать ключ, заранее полученный у службы поддержки, выполняя команду echo «<ключ>» > /etc/rosa-support-id-server с правами администратора).

Применимость

В инструкции описана установка СКЗИ КриптоПро CSP 4.0 для ROSA Enterprise Linux Server 6.7 для работы с Рутокен. Пример указан для 64-разрядной архитектуры AMD64, для 32-разрядной установка аналогична с точностью до указания установочных пакетов и папок.

Idea.png
Примечание
Когда не говорится о необходимости использования прав суперпользователя, подразумевается, что всё выполняется с правами пользователя, которым будет вестись работа в браузере firefox. Этот пользователь должен оставаться неизменным на протяжении всего описанного процесса

Получение установочных пакетов

Для установки СКЗИ КриптоПро CSP 4.0 для начала надо зарегистрироваться на сайте https://www.cryptopro.ru/ и со страницы загрузки https://www.cryptopro.ru/products/csp/downloads скачать версию 4.0 R2 для linux в формате rpm

CryptoPro RELS1.png

CryptoPro RELS2.png

Также сразу скачаем КриптоПро ЭЦП Browser plug-in версии 2.0 | отсюда

CryptoPro RELS3.png

После этого браузер следует закрыть.

Установка

Для установки нужно распаковать полученный архив. Для этого откроем терминал (вкладка терминала расположена слева посередине панели запуска приложений)

CryptoPro RELS4.png

и выполним следующие команды:

 cd ~/Downloads/
 tar -xvf linux-amd64.tgz
 tar -xvf cades_linux_amd64.tar.gz

Должна появиться папка с установочными файлами КриптоПро, в консоли можно перейти в неё командой

 cd linux-amd64/

Установка базовых компонентов КриптоПро

Далее нужно выполнить инсталляцию с правами администратора (root), для этого нужно в консоли ввести команду перехода в режим суперпользователя:

 su

и ввести пароль, после этого ввести команды для инсталляции:

 ./install.sh

Установка дополнительных компонентов КриптоПро

 yum install ccid
 yum install cprocsp-rdr-rutoken-64-4.0.0-4.x86_64.rpm ifd-rutokens-1.0.1-1.x86_64.rpm cprocsp-rdr-pcsc-64-4.0.0-4.x86_64.rpm lsb-cprocsp-pkcs11-64-4.0.0-4.x86_64.rpm

Установка Browser Plug-in

 cd ..
 yum install lsb-cprocsp-devel-4.0.0-4.noarch.rpm
 yum install cprocsp-pki-2.0.0-amd64-cades.rpm
 yum install cprocsp-pki-2.0.0-amd64-plugin.rpm

Подключение токена

Теперь можно подключить рутокен к USB-порту компьютера

CryptoPro RELS5.jpg

Запускаем в отдельном окне консоли программу pcscd с правами администратора (root). На данном этапе используется отладочный вариант запуска.

CryptoPro RELS6.png

 su
 killall pcscd
 pcscd -adfffff

После запуска не будем закрывать эту консоль (там можно будет видеть, как система общается со смарт-картой).

CryptoPro RELS7.png

Для последующих команд будем использовать консоль, которую мы открыли первой. Для них права суперпользователя не требуются (можно набрать в терминале exit для отмены режима root).

Далее наберём в консоли следующее:

 /opt/cprocsp/bin/amd64/list_pcsc

Утилита должна увидеть устройство:

CryptoPro RELS8.png

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

Редактирование списка доверенных узлов

Для начала следует добавить сайт КриптоПро в список доверенных. Для этого закрываем браузер если он был открыт и вводим в консоли команду (без прав администратора):

 firefox /etc/opt/cprocsp/trusted_sites.html

Вбиваем название сайта в строку «Добавить новый», нажимаем «+» и «Сохранить».

CryptoPro RELS9.png

Установка сертификатов удостоверяющего центра

Для работы с сертификатами нужно установить сертификат удостоверяющего центра (в данном случае устанавливается непосредственно корневой сертификат) и сертификат с рутокена на локальное хранилище. Для этого нужно загрузить с сайта удостоверяющего центра файл, содержащий цепочку сертификатов (обычно файл с расширением .cer или .p7b) и список отозванных сертификатов. Они доступны по следующей ссылке (https://www.cryptopro.ru/certsrv/certcarc.asp). Нужно нажать «Загрузка цепочки сертификатов ЦС» и «Загрузка последнего базового CRL». В консоли нужно, используя права обычного пользователя, выполнить следующие команды:

 /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file ~/Downloads/certnew.p7b
 /opt/cprocsp/bin/amd64/certmgr -inst -crl -file ~/Downloads/certcrl.crl

Подробнее о программе certmgr можно узнать [[1]] Теперь переходим к работе с контейнерами, расположенными на токене. Если на устройстве нет контейнеров, можно их создать. Для этого следует воспользоваться инструкцией в пункте Создание тестового сертификата. После установки пакетов (п. 5.1. и п. 5.2.) должна появится возможность видеть контейнеры на устройстве. Чтобы узнать путь к контейнеру, а также о самом факте его наличия, можно ввести следующее:

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

CryptoPro RELS10.png

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

Теперь установим сертификат с рутокена в личное хранилище (uMy):

 /opt/cprocsp/bin/amd64/certmgr -inst -cont '<путь к контейнеру, начинающийся на \\.\>' -store uMy

Если всё выполнилось без ошибок, можно переходить к пункту #Проверка работы электронной подписи с использованием Browser Plug-in

Idea.png
Примечание
Чаще всего расширение .cer соответствует сертификату, а .p7b - контейнеру, в котором может содержаться один или больше сертификатов (например их цепочка)

Создание тестового сертификата

Создание контейнера на жёстком диске

Если на устройстве нет контейнеров, можно их создать. Заходим на тестовый удостоверяющий центр (УЦ) КриптоПро (http://www.cryptopro.ru/certsrv/certrqma.asp) и заполняем требуемые поля (обязательно заполнять только поле «Имя:»). Нужно обязательно пометить ключ как экспортируемый. Стоит заметить, что для проверки, используемой в пункте «Проверка работы Browser Plug-in» нужно использовать стандарт 2001 года.

CryptoPro RELS11.png

Нажимаем кнопку «Выдать >»

CryptoPro RELS12.png CryptoPro RELS13.png CryptoPro RELS14.png CryptoPro RELS15.png

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

 /opt/cprocsp/bin/amd64/list_pcsc

CryptoPro RELS16.png

Также надо узнать полное название контейнера, полученного в ходе генерации сертификата:

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

CryptoPro RELS17.png

Копирование контейнера на токен

Затем используем эти названия в следующей команде:

 /opt/cprocsp/bin/amd64/csptest -keycopy -contsrc '<полное название контейнера>' -contdest '\\.\<название токена>\<желаемое название контейнера>'

CryptoPro RELS18.png CryptoPro RELS19.png

Теперь токен содержит контейнер. Можно вернуться к пункту «Установка сертификата с контейнера на токене (п. 7.3)», предварительно удалив сертификат, установленный из контейнера на жёстком диске (сгенерированного тестовым удостоверяющим центром).

Idea.png
Примечание
Устанавливать сертификат именно с контейнера на токене нужно для того, чтобы в системе была привязка сертификата к устройству

Удалить этот сертификат можно использовав следующую команду:

 /opt/cprocsp/bin/amd64/certmgr -del

И, при необходимости, выбрав номер сертификата, который необходимо удалить.

Проверка работы электронной подписи с использованием Browser Plug-in

Для проверки работы Browser Plug-in можно использовать следующий ресурс: https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html Стоит также проверить, не установлены ли лишние сертификаты, ресурс работает корректно только если установлен единственный сертификат (можно использовать команду /opt/cprocsp/bin/amd64/certmgr -del). В случае правильной работы страница будет выглядеть примерно следующим образом.

CryptoPro RELS20.png

Обобщение

В целом схема алгоритма установки выглядит следующим образом.

CryptoPro RELS21.png

Рекомендации к использованию утилит командной строки КриптоПро

Установка переменных окружения

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

В консоли получаем права суперпользователя (набираем su и вводим пароль) Вводим следующую команду (для указания пути всем пользователям кроме суперпользователя):

 echo "export PATH=$PATH:/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64" >> /etc/profile

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

 echo "export PATH=$PATH:/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64" >> /root/.bash_profile

Перезагружаемся

Для проверки можно подписать и файл и проверить подпись:

CryptoPro RELS22.png

Использование псевдонимов

Для часто используемых команд (например команда для перечисления контейнеров) стоит использовать простые, быстро набираемые псевдонимы. Для назначения псевдонимов нужно использовать команду alias. Для примера назначим псевдоним для команды

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

В консоли получаем права суперпользователя (набираем su и вводим пароль) Вводим следующую команду:

 echo "alias conts='/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn'" >> /etc/bashrc

Перезагружаемся Пример работы можно видеть ниже.

CryptoPro RELS23.png

Литература по использованию утилит командной строки

Использование certmgr: https://www.cryptopro.ru/sites/default/files/docs/csp36r3/certmgr.pdf

Использование cryptcp: https://www.cryptopro.ru/sites/default/files/products/cryptcp/3-40/cryptcp.pdf

Для получения информации по остальным программам лучше использовать команду с флагом «--help» (к примеру csptest --help).

Некоторые полезные команды

Удаление контейнера:

 csptest -keyset -deletekeyset -container '<полное название контейнера>'

Показать доверенные сайты:

 cpconfig -ini "\local\Software\Crypto Pro\CAdESplugin\TrustedSites" -view

Копирование контейнера:

 csptest -keycopy -contsrc '<полное название исходного контейнера>' -contdest '<полное название контейнера назначения>'

Смена криптопровайдера по умолчанию (доступные типы и названия можно посмотреть командой cpconfig -defprov -view_type):

 cpconfig -defprov -setdef -provtype <тип провайдера> -provname <название провайдера>

Узнать версию КриптоПро:

 csptest -keyset -verifycont

Просмотр информации о лицензии:

 cpconfig -license -view

Ввод лицензии (ключ пишется без кавычек):

 cpconfig -license -set <номер лицензии>

Перечислить доступные контейнеры:

 csptest -keyset -enum_cont -verifyc -fqcn

Примечания

Для работы с другими носителями нужно установить модули поддержки нужных устройств. Названия модулей: "cprocsp-rdr-<название_устройства>". К таким модулям относятся (cprocsp-rdr-) emv, esmart, inpaspot, mskey, jacarta, novacard, rutoken.