Установка КриптоПро на 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 для работы с Рутокен. Пример указан для 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
и ввести пароль, после этого ввести команды для инсталляции:
yum install redhat-lsb* ccid pangox-compat ./install.sh
Установка дополнительных компонентов КриптоПро
rpm -ivh cprocsp-rdr-pcsc-* lsb-cprocsp-pkcs11-* cprocsp-rdr-gui-gtk-*
Также стоит отметить пакеты поддержки устройств (токенов/ридеров/плат расширения). Эти пакеты находятся в архиве КриптоПро CSP, их названия начинаются с cprocsp-rdr-. При необходимости использования определенного устройства (например Рутокен ЭЦП) следует установить соответствующий пакет ( rpm -ivh cprocsp-rdr-rutoken*). Также в архиве есть пакеты с драйверами (ifd-*) их также следует установить при использовании соответствующего устройства (Рутокен S -> rpm -ivh ifd-rutokens*).
Не следует устанавливать пакет cprocsp-rdr-gui, так как в связке с cprocsp-rdr-gui-gtk он нарушает работу графических компонентов.
Установка Browser Plug-in
cd .. rpm -ivh lsb-cprocsp-devel* 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 для отмены режима root).
Далее наберём в консоли следующее:
/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