#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) Перейдем в директорию с ПО
cd /linux-amd64_deb
6) выполним установку ПО с помощью запуска скрипта "install.sh" или "instal_gui.sh" командой:
sudo ./install_gui.sh
* Выбрать необходимые модули, библиотеки.
Прописывание путей к исполняемым файлам
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
Установка дополнительных пакетов с модулем поддержки для токена
Для корректной работы с токеном/смарт-картой обязательно требуется ставить пакет с модулем поддержки:
Страница загрузки Рутокен: https://www.rutoken.ru/support/download/rutoken-for-cp/
Страница загрузки Алладин: https://www.aladdin-rd.ru/support/downloads/jacarta
После установки пакетов с модулем поддержки токена следует перезагрузить службу pcscd:
sudo service pcscd restart
Идентификация токена
Чтобы узнать модель подключенного токена, следует ввести команду:
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
скачайте расширение по ссылке и установите в браузер самостоятельно.
Проверка корректности установки на странице проверки плагина
Для этого в открывшемся окне подтвердите доступ путем нажатия кнопки "Да".
Если установка КриптоПро ЭЦП Browser plug-in прошла успешно, появится окно с надписью "Плагин загружен", указанием его версии и используемой Вами версии КриптоПро CSP.
д) Тестовый сайт предложит Вам подписать документ и выбрать нужный Вам сертификат.
В случае если у Вас отсутствуют "личные сертификаты" → нажимаем на корневой сертификат тестового УЦ - Просмотреть - Подробности - Экспортировать - Сохранить.
Открываем эмулятор терминала и выполняем от root`а:
/opt/cprocsp/bin/amd64/certmgr -inst -cert -file /home/u/Загрузки/CRYPTO-PROTestCenter2.crt.crt -store mroot
Перезапускаем браузер.
Заходим на страницу проверки работы КриптоПро ЭЦП Browser Plug-in и нажимаем получить, выполняем все всплывающие требования. Сертификат получен.
Альтернативный метод получения тестового сертификата
1) Перейдите на сайт Тестового Удостоверяющего центра ООО "КРИПТО-ПРО"
2) Для получение сертификата, перейдите в раздел Сформировать ключи и отправить запрос на сертификат
3) Заполните идентифицирующие сведения:
4) Нажмите "Выдать", после чего выйдет GTK-окно для создания случайных последовательностей:
5) После чего, CryptoPro CSP потребует вести новый пароль для контейнера
6) Тестовый УЦ КриптоПро уведомит нас о том, что сертификат выдан
7) Пройти по ссылке и установить сертификат, введя пароль контейнера.
8) После успешной установки сертификата, следует перейти на страницу проверки создания электронной подписи CAdES-BES
Получение тестового сертификата с помощью cli
Для запроса, получения и установки сертификата с тестового УЦ "КриптоПро" - можно, воспользоваться одной командой:
cryptcp -creatcert -rdn 'E=email@astralinux.ru, CN=имя_сертификата' -cont '\\.\HDIMAGE\имя_контейнера' -hashalg 1.2.643.7.1.1.2.2
Носители и контейнеры
Проверить наличие носителей можно с помощью команды:
/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum -unique
в формате FQCN, отображается имя носителя:
/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 'имя_контейнера'
Информация о контейнерах
Для просмотра подробной информации о контейнерах воспользуйтесь командой:
/opt/cprocsp/bin/amd64/csptestf -keyset -container 'ИМЯ' -info
Следует учесть про PIN-коды в контейнерах:
* если само устройство осуществляет аутентификацию (как к примеру токен), то PIN при создании не создаётся, а предъявляется, так как он - свойство устройства. Как следствие: у всех контейнеров на токене одинаковый PIN.
* если устройство не аутентифицирует (как HDIMAGE), то при создании контейнера, создаётся PIN-код. Следствие: у всех контейнеров, PIN-код на HDIAMGE может быть разным.
Проверка работы контейнера
Для того чтобы проверить работу контейнера (в том числе возможность выполнения разных операций при текущей лицензии), следует выполнить команду:
/opt/cprocsp/bin/amd64/csptestf -keyset -container ИМЯ -check
Удаление контейнера
Для удаления контейнера следует воспользоваться командой:
/opt/cprocsp/bin/amd64/csptestf -passwd -cont '\\.\Aktiv Rutoken ECP 00 00\TestCont' -deletek
Копирование контейнера
Для примера скопируем контейнер из локального хранилища в хранилище Рутокена ЕЦП:
csptestf -keycopy -contsrc '\\.\HDIMAGE\Контейнер_оригинал' -contdest '\\.\Aktiv Rutoken ECP 00 00\Контейнер_копия'
Запрос на получение сертификата для созданного контейнера
Для создания запроса на получение сертификата для контейнера '\\.\Aktiv Rutoken ECP 00 00\Shuhrat' , воспользуемся командой:
/opt/cprocsp/bin/amd64/cryptcp -creatrqst -dn "E=user@astralinux.ru,C=RU, CN=Махмадиев Шухрат Хайдарович, SN=Махмадиев" -hashalg 1.2.643.7.1.1.2.2 -nokeygen -both -ku -cont '\\.\Aktiv Rutoken ECP 00 00\Shuhrat' cert.req
В параметре -dn указываются данные, которые будут хранится в поле Subject сертификата. Созданный запрос будет сохранен в файле cert.req. Эти данные нужны для получения сертификата в удостоверяющем центре. Для примера можно воспользоваться тестовым удостоверяющим центром КриптоПро. Нам нужен пункт " Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64 ". На следующей странице в поле «Сохраненный запрос» вставляем содержимое файла cert.req и нажимаем кнопку «Выдать».
Для просмотра содержимого cert.req, воспользуйтесь командой: $ cat cert.req
После чего следует загрузить сертификат и цепочку сертификатов:
Для установки полученного личного сертификата от тестового УЦ, следует воспользоваться командой:
/opt/cprocsp/bin/amd64/certmgr -inst -file имя_полученного_сертификата.cer -cont '\\.\Aktiv Rutoken ECP 00 00\Shuhrat'
Для записи полученного сертификата в контейнер следует воспользоваться командой:
/opt/cprocsp/bin/amd64/csptest -keys -cont '\\.\Aktiv Rutoken ECP 00 00\Shuhrat' -keyt exchange -impcert имя_полученного_сертификата.cer
Менеджер сертификатов КриптоПРО в Linux
4 категории сертификатов
Они делятся на четыре категории:
* личные сертификаты (ставятся в хранилище umy, где u = User, my - имя хранилища) - как правило для них есть закрытый ключ (и они требуют особой установки, чтобы в хранилище появилась ссылка на этот закрытый ключ). В результате с их использованием можно, например, подписать файл.
* корневые сертификаты - краеугольнй камень безопасности, так как цепочки доверия строятся от них, то их надо добавлять в хранилища осознанно и внимательно (ставятся в uroot, также администратор может поставить их в mroot, где m = Machine, такие сертификаты будут видны в read only в root-хранилищах всех пользователей)
* промежуточные сертификаты - появляются, когда есть промежуточные УЦ (головной -> промежуточный -> пользовательский). Прямое доверие к ним не требуется (ставятся в uca, также администратор может поставить их в mca). В это же хранилище ставятся CRL-и. Обычно точки получения промежуточных сертификатов и CRL-ей правильно указаны в пользовательских сертификатах, поэтому они автоматом выкачиваются и попадают в хранилище ucache. В общем про них можно ничего особо не знать и ничего не делать.
* сертификаты партнёров по общению, чтобы проверять их подписи и зашифровывать для них сообщения. Ставятся либо в umy (это беспорядок, но популярный), либо в uAddressBook
Установка
Пример установки личного сертификата, выданного УЦ Министерства Обороны Российской Федерации
Установка всех личных сертификатов с Рутокена в uMy : $ sudo /opt/cprocsp/bin/amd64/csptestf -absorb -cert -pattern 'rutoken' Установка определенного сертификата с определенного контейнера в uMy: $ /opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\Aktiv Rutoken ECP 00 00\Ivanov' Установка сертификата удостоверяющего центра ГУЦ в mRoot: $ sudo curl https://structure.mil.ru/files/morf/military/files/guc18.cer|/opt/cprocsp/bin/amd64/certmgr -inst -store mRoot Установка промежуточного сертификата МО в mca: $ sudo curl http://structure.mil.ru/download/doc/morf/military/files/CA2018.cer|/opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin Установка списка отвызвов (CRL), ставим его с того же сайта в mca: $ sudo curl http://structure.mil.ru/download/doc/morf/military/files/crl_18.crl|/opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin -crl
Примечание
В опции -pattern >>> 'rutoken' может быть другим в зависимости от подключенного токена
В случае, если рабочая станция не имеет доступа к сети, следует 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 -dn 'CN=Название_нужного_сертификата' -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 позволит Вам авторизоваться и изменять данные на нескольких сайтах:
Список сайтов ЕСИА использующий 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
Установка и настройка
Для аутентификации через ЕСИА 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) Подключив токен, следует нажать кнопку "Готово", после чего система предложит выбрать нужный сертификат ключа проверки ЭЦП:
Вход на сайт главного портала ГосЗакупок
Успешный вход на сайт zakupki.gov.ru гарантирован, при выполнении всех пунктов инструкции по установке сертификатов, который был описан выше.
Перейдя на сайт zakupki.gov.ru, следует кликнуть мышкой по иконке "Личного кабинета" и выбрать необходимый метод входа:
После чего система уведомит Вас, о том что для работы необходимо установить и настроить ПО "КриптоПро CSP":
Нажав кнопку "Продолжить работу с сайтом", система предложит выбрать нужный сертификат:
Выбрать сертификат и ввести pin-код.
Вход на сайт Минфин России
1) Для авторизации на сайте Минфина России, следует перейти на страницу авторизации
2) Скачать и установить корнейвой сертификат УЦ "Минфина России:
$ curl http://ssl.budgetplan.minfin.ru/CAMinfin.cer|/opt/cprocsp/bin/amd64/certmgr -inst -store mRoot
3) Кликнуть по ссылке Вход по сертификату и выбрать нужный сертификат:
4) После чего система попросит Вас ввести пароль:
Полезные ссылки
Таблица поддерживаемых устройств Крипто-Про CSP
На официальном сайте СКЗИ КриптоПро в таблице указаны носители, продемонстрировавшие работоспособность с соответствующими версиями КриптоПро CSP:
https://www.cryptopro.ru/products/csp/compare