#lsb_release -a
Distributor ID: AstraLinux
Description: Astra Linux 2.12 (Orel)
Release: 2.12
Codename: orel
Установка КриптоПро CSP
1) Скачаем архив с сертифицированной версией ПО «КриптоПро» «4.0 R3» по адресу: https://www.cryptopro.ru/products/csp/downloads#latest_csp40r3_linux
Название полученного файла должно быть: «linux-amd64_deb.tgz».
2) Откроем терминал.
3) Перейдем в терминале в папку «Загрузки» с помощью команды:
cd /home/u/Загрузки
4) Разархивируем скаченный архив в терминале командой:
tar -zxf linux-amd64_deb.tgz
5) Перейдем в директорию с ПО и выполним установку ПО с помощью запуска скрипта "install.sh" "instal_gui.sh" или командой:
cd /linux-amd64_deb
sudo ./install_gui.sh
Прописывание путей к исполняемым файлам
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
Идентификация токена
Чтобы узнать модель подключенного токена, следует ввести команду:
csptest -card -enum -v -v
После чего система выдаст информацию о подключенном устройстве:
Установка КриптоПро ЭЦП Browser plug-in
a)Установить пакет alien, необходимый для конвертации rpm-пакетов в deb-формат
б) Загрузить архив cades_linux_amd64.zip
https://www.cryptopro.ru/products/cades/plugin/get_2_0
в) Распаковать архив cades_linux_amd64.zip перейти в каталог с распакованными файлами и выполнить команды:
alien -dc cprocsp-pki-2.0.0-amd64-cades.rpm
alien -dc cprocsp-pki-2.0.0-amd64-plugin.rpm
г) Установить deb-пакеты:
dpkg -i cprocsp-pki-cades_2.0.0-2_amd64.deb cprocsp-pki-plugin_2.0.0-2_amd64.deb
д) Дальнейшие настройки различаются в зависимости от используемого браузера:
Браузер Chrome:
запустите Chrome и дождитесь оповещения об установленном расширении "CryptoPro Extension for CAdES Browser Plug-in". Включите это расширение. Если на Вашем компьютере ранее уже выполнялась установка КриптоПро ЭЦП Browser plug-in, а потом он был удален, потребуется отдельно установить расширение. Для этого перейдите по ссылке и установите расширение из интернет-магазина Chrome.
Браузер Opera или Яндекс.Браузер:
расширение доступно по ссылке.
Браузер Firefox:
скачайте расширение по ссылке и установите в браузер самостоятельно.
Браузер Microsoft Internet Explorer:
не требуется дополнительных настроек.
Проверка корректности установки на странице проверки плагина.
Для этого в открывшемся окне подтвердите доступ путем нажатия кнопки "Да".
Если установка КриптоПро ЭЦП Browser plug-in прошла успешно, появится окно с надписью "Плагин загружен", указанием его версии и используемой Вами версии КриптоПро CSP.
д) Тестовый сайт предложит Вам подписать документ и выбрать нужный Вам сертификат.
В случае если у Вас отсутствуют "личные сертификаты" → нажимаем на корневой сертификат тестового УЦ - Просмотреть - Подробности - Экспортировать - Сохранить.
Открываем эмулятор терминала и выполняем от root`а:
/opt/cprocsp/bin/amd64/certmgr -inst -cert -file /home/u/Загрузки/CRYPTO-PROTestCenter2.crt.crt -store uroot
Перезапускаем браузер.
Заходим на страницу https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html и нажимаем получить, выполняем все всплывающие требования. Сертификат получен.
Хранилища и контейнеры
Проверить наличие хранилища можно с помощью команды
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc
В этом случае будет выведен список хранилищ с контейнерами в следующем формате:
Где \\.\HDIMAGE - название хранилища, \\.\HDIMAGE\TestCont123 - название контейнера, \\/\Aktiv Rutoken ECP 00 00 - токен.
Создание хранилища
Если такого хранилища не существует, то его можно создать командой:
sudo /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store
Создание контейнера
Для добавления контейнера в хранилище HDIMAGE следует воспользоваться командой:
/opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -cont '\\.\HDIMAGE\TestCont'
Для добавления контейнера в хранилище токена следует воспользоваться командой:
/opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -cont '\\.\Aktiv Rutoken ECP 00 00\TestCont'
Примечание
Название токена может отличаться. Для идентификации воспользуйтесь командой: csptest -card -enum -v -v
В 5-ой версии КриптоПРО CSP v.5.0, для создания контейнера, имя носителя можно не указывать, а выбрать в gtk-диалоге:
/opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -cont ''
Информация о контейнерах
Для просмотра подробной информации о контейнерах воспользуйтесь командой:
csptest -keyset -verifycontext -enum -unique
Удаление контейнера
Для удаления контейнера следует воспользоваться командой:
csptestf -passwd -cont '\\.\Aktiv Rutoken ECP 00 00\TestCont' -deletek
Копирование контейнера
Для примера скопируем контейнер из локального хранилища в хранилище Рутокена ЕЦП:
csptestf -keycopy -contsrc '\\.\HDIMAGE\Контейнер_оригинал' -contdest '\\.\Aktiv Rutoken ECP 00 00\Контейнер_копия'
Менеджер сертификатов КриптоПРО в Linux
4 категории сертификатов:
Они делятся на четыре категории:
* личные сертификаты (ставятся в хранилище umy, где u = User, my - имя хранилища) - как правило для них есть закрытый ключ (и они требуют особой установки, чтобы в хранилище появилась ссылка на этот закрытый ключ). В результате с их использованием можно, например, подписать файл.
* корневые сертификаты - краеугольнй камень безопасности, так как цепочки доверия строятся от них, то их надо добавлять в хранилища осознанно и внимательно (ставятся в uroot, также администратор может поставить их в mroot, где m = Machine, такие сертификаты будут видны в read only в root-хранилищах всех пользователей)
* промежуточные сертификаты - появляются, когда есть промежуточные УЦ (головной -> промежуточный -> пользовательский). Прямое доверие к ним не требуется (ставятся в uca, также администратор может поставить их в mca). В это же хранилище ставятся CRL-и. Обычно точки получения промежуточных сертификатов и CRL-ей правильно указаны в пользовательских сертификатах, поэтому они автоматом выкачиваются и попадают в хранилище ucache. В общем про них можно ничего особо не знать и ничего не делать.
* сертификаты партнёров по общению, чтобы проверять их подписи и зашифровывать для них сообщения. Ставятся либо в umy (это беспорядок, но популярный), либо в uAddressBook
Установка
Пример установки личного сертификата, выданного УЦ Министерства Обороны Российской Федерации
Установка всех личных сертификатов с Рутокена в uMy : $ /opt/cprocsp/bin/amd64/csptestf -absorb -cert -pattern 'rutoken' Установка определенного сертификата с определенного контейнера в uMy: $ /opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\Aktiv Rutoken ECP 00 00\Ivanov' Установка сертификата удостоверяющего центра ГУЦ в mRoot: $ curl https://structure.mil.ru/files/morf/military/files/guc18.cer|/opt/cprocsp/bin/amd64/certmgr -inst -store mRoot Установка промежуточного сертификата МО в mca: curl http://structure.mil.ru/download/doc/morf/military/files/CA2018.cer|/opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin Установка списка отвызвов (CRL), ставим его с того же сайта в mca: curl http://structure.mil.ru/download/doc/morf/military/files/crl_18.crl|/opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin -crl
Примечание
В случае, если рабочая станция не имеет доступа к сети, следует stdin заменить на -file /tmp/ca.cer и -file /tmp/ca.crl
Примечание
1) Имена хранилищ указаны в формате certmgr, у cryptcp похожий формат: -mroot и -uAddressBook
2) Из под учетной записи пользователя ставится в uca, из под учетной записи администратора ставить в mca:
3) В опции -pattern можно указать пустые < ' ' > чтобы установить все сертификаты в uMy. Пример:
/opt/cprocsp/bin/amd64/csptestf -absorb -cert -pattern ''
4) В случае, если личный сертификат извлеченн, следует изпользовать опцию -file :
certmgr -inst -file cert.cer -store uMy
Просмотр
Для просмотра выше установленных сертификатов можно воспользоваться :
certmgr -list
Удаление
Удаление сертификата из хранилища КриптоПро:
certmgr -delete 1 (номер сертификата)
certmgr -del -all (удаление всех сертификатов)
Экспорт сертификатов на другую машину
Закрытые ключи к сертификатам находятся тут: /var/opt/cprocsp/keys
.
Поэтому эти ключи переносятся просто: создаем архив и переносим на нужную машину в тот же каталог.
/opt/cprocsp/bin/amd64/certmgr -export -dest cert.cer
Переносим эти файлы на машину и смотрим, какие контейнеры есть:
csptest -keyset -enum_cont -verifycontext -fqcn
И как обычно, связываем сертификат и закрытый ключ:
certmgr -inst -file 1.cer -cont '\\.\HDIMAGE\container.name'
Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Can not install certificate Public keys in certificate and container are not identical
Подписание документа ЭЦП
Подпись можно делать двумя способами:
* attached (присоединённая), тогда результирующий файл - это CMS-сообщение, внутрь которого упакованы данные и атрубуты (типа подписи). Формат сообщения соответствует международному стандарту, поэтому извлекать данные оттуда можно любыми утилитами, типа cryptcp / csptest / openssl / certutil (на windows).
* detached (отсоединённая), тогда результирующий файл - это CMS-сообщение БЕЗ исходных данных, но с атрибутами (типа подписи). В этом случае для проверки надо "принести" исходный файл. Разумеется он остаётся неизменным и его можно смотреть cat-ом
Про CMS-сообщения, есть хорошая статья на Хабре
Подпись файлов: shuhrat@smakhmadiev:~/smolensk$ /opt/cprocsp/bin/amd64/cryptcp -sign -detach -pin 12345678 smolensk16.iso smolensk16.iso.sig CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Будет использован следующий сертификат: Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г. Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Цепочки сертификатов проверены. Папка './': smolensk16.iso... Подпись данных... Подписанное сообщение успешно создано. [ErrorCode: 0x00000000]
Проверка подписи в файле:
обучающий:
указать в качестве хранилища сертификатов само сообщение (ключ -f):
/opt/cprocsp/bin/amd64/cryptcp -verify -verall -detached /home/shuhrat/smolensk/smolensk16.iso smolensk16.iso.sig CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Папка '/home/shuhrat/smolensk/': /home/shuhrat/smolensk/smolensk16.iso... Проверка подписи... Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г. Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Цепочки сертификатов проверены. Папка './': smolensk16.iso... Проверка подписи... Подпись проверена. [ErrorCode: 0x00000000]
естественный:
использовать ключ -verall - он понимает, что надо найти всех подписавших и ищет в том числе в сообщении:
/opt/cprocsp/bin/amd64/cryptcp -verify -f smolensk16.iso.sig -detached smolensk16.iso smolensk16.iso.sig CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Будет использован следующий сертификат: Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г. Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Цепочки сертификатов проверены. Папка './': smolensk16.iso... Проверка подписи... Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г. Москва, RU, шоссе Варшавское д. 26, mail@rusbitech.ru Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02 Подпись проверена. [ErrorCode: 0x00000000]
Графический интерфейс КриптоПро CSP v. 5.0 (cptools)
В версии КриптоПРО 5 появилась графическая утилита для работы с сертификатами - cptools.
её можно запустить из консоли:
$ cptools
либо
$ /opt/cprocsp/bin/amd64/cptools
Вход в ЕСИА
Для доступа к Госуслугам был использован Рутокен ЭЦП 2, «КриптоПро 4.0 R3», IFCP-plugin 3.0.3
IFCP-plugin позволит Вам авторизоваться и изменять данные на нескольких сайтах:
Список сайтов
- Все сайты gosuslugi.ru
- Все сайты is-mis.ru
- Все сайты minsvyaz.ru
- Все сайты minzdrav12.ru
- Все сайты mzkbr.ru
- Все сайты orb.ru
- Все сайты poliklinika45.ru
- Все сайты r-mis.ru
- Все сайты registratura96.ru
- Все сайты rkomi.ru
- Все сайты tambov.gov.ru
- Все сайты tatar.ru
- Все сайты voskhod.ru
- localhost
Установка и настройка:
Для аутентификации через ЕСИА esia.gosuslugi.ru следует:
1) Скачать Рутокен плагин с оффициального сайта: https://www.rutoken.ru/support/download/rutoken-plugin/
2) Скачать IFCP-плагин с сайта ГосУслуг в формате «deb» — файл IFCPlugin-x86_64.deb; https://ds-plugin.gosuslugi.ru/plugin/upload/Index.spr
3) Установить плагин:
$ sudo dpkg -i IFCPlugin-x86_64.deb
3) Для правильной работы плагина, следует прописать символические ссылки:
Для браузера Chromium:
sudo ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts
Для браузера Mozilla Firefox:
sudo ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so
Примечание: libcppkcs11.so.4.0.Х может отличаться, в зависимости от версии КриптоПро CSP.
4) Добавить в конфигурационный файл IFCplugin /etc/ifc.cfg :
{ name = "Актив руТокен ЭЦП"; alias = "ruTokenECP"; type = "pkcs11"; alg = "gost2001"; lib_linux = "librtpkcs11ecp.so"; }, { name = "CryptoPro CSP"; alias = "cryptoprocsp"; type = "pkcs11"; alg = "gost2001"; lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so"; }
5) Для проверки работы плагина, в терминале в режиме live можно просмотреть логи:
tail -f /var/log/ifc/engine_logs/engine.log
6) Для авторизации следует пройти по адресу: esia.gosuslugi.ru и выбрать Вход с помощью электронной подписи
7) Подключив токен, следует нажать кнопку "Готово", после чего система предложит выбрать нужный сертификат ключа проверки ЭЦП: