Установка КриптоПро на RELS
Содержание
- 1 Начальные требования
- 2 Применимость
- 3 Получение установочных пакетов
- 4 Установка
- 5 Подключение токена
- 6 Установка сертификатов
- 7 Создание тестового сертификата
- 8 Проверка работы электронной подписи с использованием Browser Plug-in
- 9 Обобщение
- 10 Рекомендации к использованию утилит командной строки КриптоПро
Начальные требования
Установленная система ROSA Enterprise Linux Server 6.7 в конфигурации «Стандартный сервер РОСА», доступ к репозиториям (для этого нужно получить ключ, заранее полученный у службы поддержки и выполнить команду echo «<ключ>» > /etc/rosa-support-id-server с правами администратора).
Применимость
В инструкции описана установка СКЗИ КриптоПро CSP 4.0 для ROSA Enterprise Linux Server 6.7 для работы с Рутокен и eToken. Пример указан для 64-разрядной архитектуры AMD64, для 32-разрядной установка аналогична с точностью до указания установочных пакетов и папок.
Когда не говорится о необходимости использования прав суперпользователя, подразумевается, что всё выполняется с правами пользователя, которым будет вестись работа в браузере firefox. Этот пользователь должен оставаться неизменным на протяжении всего описанного процесса
Получение установочных пакетов
Для установки СКЗИ КриптоПро CSP 4.0 для начала надо зарегистрироваться на сайте https://www.cryptopro.ru/ и со страницы загрузки https://www.cryptopro.ru/products/csp/downloads скачать версию 4.0 R2 для linux в формате rpm
Также сразу скачаем КриптоПро ЭЦП Browser plug-in версии 2.0 | отсюда
После этого браузер следует закрыть.
Установка
Для установки нужно распаковать полученный архив. Для этого откроем терминал (вкладка терминала расположена слева посередине панели запуска приложений)
и выполним следующие команды:
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
Установка Browser Plug-in
cd .. yum install lsb-cprocsp-devel-5.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-порту компьютера
Запускаем в отдельном окне консоли программу pcscd с правами администратора (root). На данном этапе используется отладочный вариант запуска.
su killall pcscd pcscd -adfffff
После запуска не будем закрывать эту консоль (там можно будет видеть, как система общается со смарт-картой).
Для последующих команд будем использовать консоль, которую мы открыли первой. Для них права суперпользователя не требуются (можно набрать в терминале exit).
Далее наберём в консоли следующее:
/opt/cprocsp/bin/amd64/list_pcsc
Утилита должна увидеть устройство:
Установка сертификатов
Редактирование списка доверенных узлов
Для начала следует добавить сайт КриптоПро в список доверенных. Для этого закрываем браузер если он был открыт и вводим в консоли команду (без прав администратора):
firefox /etc/opt/cprocsp/trusted_sites.html
Вбиваем название сайта в строку «Добавить новый», нажимаем «+» и «Сохранить».
Установка сертификатов удостоверяющего центра
Для работы с сертификатами нужно установить сертификат удостоверяющего центра (в данном случае устанавливается непосредственно корневой сертификат) и сертификат с рутокена на локальное хранилище. Для этого нужно загрузить с сайта удостоверяющего центра файл, содержащий цепочку сертификатов (обычно файл с расширением .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
Установка сертификата с контейнера на токене
Теперь установим сертификат с рутокена в личное хранилище (uMy):
/opt/cprocsp/bin/amd64/certmgr -inst -cont '<путь к контейнеру, начинающийся на \\.\>' -store uMy
Если всё выполнилось без ошибок, можно переходить к пункту «Проверка работы Browser Plug-in».
Чаще всего расширение .cer соответствует сертификату, а .p7b - контейнеру, в котором может содержаться один или больше сертификатов (например их цепочка)
Создание тестового сертификата
Создание контейнера на жёстком диске
Заходим на тестовый удостоверяющий центр (УЦ) КриптоПро (http://www.cryptopro.ru/certsrv/certrqma.asp) и заполняем требуемые поля (обязательно заполнять только поле «Имя:»). Нужно обязательно пометить ключ как экспортируемый. Стоит заметить, что для проверки, используемой в пункте «Проверка работы Browser Plug-in» нужно использовать стандарт 2001 года.
Нажимаем кнопку «Выдать >»
Теперь можно копировать контейнер на токен, но сначала надо узнать его название. Для этого нужно открыть консоль и выполнить следующую команду:
/opt/cprocsp/bin/amd64/list_pcsc
Также надо узнать полное название контейнера, полученного в ходе генерации сертификата:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn
Копирование контейнера на токен
Затем используем эти названия в следующей команде:
/opt/cprocsp/bin/amd64/csptest -keycopy -contsrc '<полное название контейнера>' -contdest '\\.\<название токена>\<желаемое название контейнера>'
Теперь токен содержит контейнер. Можно вернуться к пункту «Установка сертификата с контейнера на токене (п. 7.3)», предварительно удалив сертификат, установленный из контейнера на жёстком диске (сгенерированного тестовым удостоверяющим центром).
Устанавливать сертификат именно с контейнера на токене нужно для того, чтобы в системе была привязка сертификата к устройству
Удалить этот сертификат можно использовав следующую команду:
/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). В случае правильной работы страница будет выглядеть примерно следующим образом.
Обобщение
В целом схема алгоритма установки выглядит следующим образом.
Рекомендации к использованию утилит командной строки КриптоПро
Установка переменных окружения
Для удобства стоит сначала сделать так, чтобы можно было запускать программы, не прописывая каждый раз путь к ним. Это можно сделать многими способами. В данном случае предлагается поступить следующим образом:
В консоли получаем права суперпользователя (набираем 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
Перезагружаемся
Для проверки можно подписать и файл и проверить подпись:
Использование псевдонимов
Для часто используемых команд (например команда для перечисления контейнеров) стоит использовать простые, быстро набираемые псевдонимы. Для назначения псевдонимов нужно использовать команду 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
Перезагружаемся Пример работы можно видеть ниже.
Литература по использованию утилит командной строки
Использование 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