Установленная система ROSA Enterprise Linux Server 6.7 в конфигурации «Стандартный сервер РОСА», доступ к репозиториям (для этого нужно использовать ключ, заранее полученный у службы поддержки, выполняя команду echo «<ключ>» > /etc/rosa-support-id-server с правами администратора).
В инструкции описана установка СКЗИ КриптоПро CSP 4.0 для ROSA Enterprise Linux Server 6.7 для работы с Рутокен. Пример указан для 64-разрядной архитектуры AMD64, для 32-разрядной установка аналогична с точностью до указания установочных пакетов и папок.
Для установки СКЗИ КриптоПро 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 он нарушает работу графических компонентов.
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
Если на устройстве нет контейнеров, можно их создать. Заходим на тестовый удостоверяющий центр (УЦ) КриптоПро (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 можно использовать следующий ресурс: 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