#lsb_release -a
Distributor ID: AstraLinux
Description: Astra Linux 2.12 (Orel)
Release: 2.12
Codename: orel
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" |
Чтобы узнать модель подключенного токена, следует ввести команду:
csptest -card -enum -v -v
После чего система выдаст информацию о подключенном устройстве:
Для корректной работы с токеном/смарт-картой обязательно требуется ставить пакет с модулем поддержки:
Страница загрузки Рутокен: https://www.rutoken.ru/support/download/rutoken-for-cp/
Страница загрузки Алладин: https://www.aladdin-rd.ru/support/downloads/jacarta
После установки пакетов с модулем поддержки токена следует перезагрузить службу pcscd:
sudo service pcscd restart
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 и дождитесь оповещения об установленном расширении "CryptoPro Extension for CAdES Browser Plug-in". Включите это расширение. Если на Вашем компьютере ранее уже выполнялась установка КриптоПро ЭЦП Browser plug-in, а потом он был удален, потребуется отдельно установить расширение. Для этого перейдите по ссылке и установите расширение из интернет-магазина Chrome.
расширение доступно по ссылке.
скачайте расширение по ссылке и установите в браузер самостоятельно.
Для этого в открывшемся окне подтвердите доступ путем нажатия кнопки "Да".
Если установка КриптоПро ЭЦП Browser plug-in прошла успешно, появится окно с надписью "Плагин загружен", указанием его версии и используемой Вами версии КриптоПро CSP.
д) Тестовый сайт предложит Вам подписать документ и выбрать нужный Вам сертификат.
В случае если у Вас отсутствуют "личные сертификаты" → нажимаем на корневой сертификат тестового УЦ - Просмотреть - Подробности - Экспортировать - Сохранить.
Открываем эмулятор терминала и выполняем от root`а:
/opt/cprocsp/bin/amd64/certmgr -inst -cert -file /home/u/Загрузки/CRYPTO-PROTestCenter2.crt.crt -store uroot
Перезапускаем браузер.
Заходим на страницу проверки работы КриптоПро ЭЦП Browser Plug-in и нажимаем получить, выполняем все всплывающие требования. Сертификат получен.
1) Перейдите на сайт Тестового Удостоверяющего центра ООО "КРИПТО-ПРО"
2) Для получение сертификата, перейдите в раздел Сформировать ключи и отправить запрос на сертификат
3) Заполните идентифицирующие сведения:
4) Нажмите "Выдать", после чего выйдет GTK-окно для создания случайных последовательностей:
5) После чего, CryptoPro CSP потребует вести новый пароль для контейнера
6) Тестовый УЦ КриптоПро уведомит нас о том, что сертификат выдан
7) Пройти по ссылке и установить сертификат, введя пароль контейнера.
8) После успешной установки сертификата, следует перейти на страницу проверки создания электронной подписи CAdES-BES
Проверить наличие хранилища можно с помощью команды
/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\Контейнер_копия'
Для создания запроса на получение сертификата для контейнера '\\.\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
Они делятся на четыре категории:
* личные сертификаты (ставятся в хранилище 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] |
В версии КриптоПРО 5 появилась графическая утилита для работы с сертификатами - cptools.
её можно запустить из консоли:
$ cptools
либо
$ /opt/cprocsp/bin/amd64/cptools
Для доступа к Госуслугам был использован Рутокен ЭЦП 2, «КриптоПро 4.0 R3», IFCP-plugin 3.0.3
IFCP-plugin позволит Вам авторизоваться и изменять данные на нескольких сайтах:
Для аутентификации через ЕСИА 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:
https://www.cryptopro.ru/products/csp/compare
https://support.cryptopro.ru/index.php?/Knowledgebase/List