RutokenS и Ubuntu 19.04 64bit

Обновлено: Сентябрь 03, 2019
< Назад

Задача: с помощью RutokenS зайти на портал Госуслуг в Ubuntu 19.04

Итак, приступаем: 

1. Устанавливаем FireFox 

sudo apt install firefox

2. Добавляем поддержку lsb и alien — понадобится для установки ЭЦП браузер плагин (CadesPlugin).

sudo apt install lsb lsb-core alien
sudo apt install libgtk2.0-0

3. Скачиваем свежий КриптоПро CSP 5 c https://cryptopro.ru/products/csp/downloads#latest_csp50_linux
4. Скачиваем свежий плагин с https://www.cryptopro.ru/products/cades/plugin/get_2_0
5. Распаковываем КриптоПро и плагин, заходим в папку с КриптоПро и запускаем установщик:

sudo ./install.sh

Убеждаемся что ошибок нет, и все зависимости удовлетворены. Если чего-то не хватает, всё есть в стандартных репах,
устанавливаем нужные пакеты, и заново. Пока не пройдет без ошибок.   Устанавливаем доп. пакеты для работы с ЭЦП:

sudo dpkg -i cprocsp-rdr-gui-gtk-64_5.0.11453-5_amd64.deb 
#Поддержка алгоритмов класса1 и 2
sudo dpkg -i lsb-cprocsp-kc1-64_5.0.11453-5_amd64.deb
sudo dpkg -i lsb-cprocsp-kc2-64_5.0.11453-5_amd64.deb
#Обязательно установить библиотеки pkcs11
sudo dpkg -i lsb-cprocsp-pkcs11-64_5.0.11453-5_amd64.deb
sudo dpkg -i cprocsp-rsa-64_5.0.11453-5_amd64.deb
sudo dpkg -i cprocsp-rdr-pcsc-64_5.0.11453-5_amd64.deb
sudo dpkg -i cprocsp-rdr-rutoken-64_5.0.11453-5_amd64.deb
#Устанавливаем
sudo dpkg -i ifd-rutokens_1.0.4_amd64.deb

Потребует так же установить зависимости pcsc и libusb ставим из стандартных репозиториев.  

sudo apt update
sudo apt install libccid pcscd libpcsclite1 pcsc-tools opensc
sudo apt install libgtk2.0-0
sudo apt install pcscd
sudo apt install pcsc-tools
sudo apt install motif*

Устанавливаем CadesPlugin с помощью alien

sudo alien -kci cprocsp-pki-2.0.0-amd64-cades.rpm
sudo alien -kci cprocsp-pki-2.0.0-amd64-plugin.rpm

Так как с первого раза не все файлы могут скопироваться, например не копируется /opt/cprocsp/lib/amd64/libnpcades.so , то повторяем

sudo alien -kci cprocsp-pki-2.0.0-amd64-plugin.rpm

Делаем ссылку на установленный плагин

sudo ln -s /opt/cprocsp/lib/amd64/libnpcades.so /usr/lib/firefox-addons/plugins/libnpcades.so

И ЭТО БЫЛ ОЧЕНЬ ВАЖНЫЙ МОМЕНТ!!!!

Скачиваем СВЕЖИЙ плагин IFCPlugin для работы с порталами с ЕСИА(Госуслуги) с https://ds-plugin.gosuslugi.ru/plugin/upload/Index.spr и устанавливаем:

sudo dpkg -i IFCPlugin-x86_64.deb

Если во время выполнения этой команды система предложить понизить версию установленного плагина:

то не вздумайте это делать!!! Если предложит обновить, то ставим самый свежий плагин!!!

После успешной установки заменяем дефолтный файл /etc/ifc.cfg на

log = {
    level = "DEBUG";
 }
 config = {
 cert_from_registry = "false";
 set_user_pin = "true";
 }
 params =
 (
   { name  = "Криптопровайдер VipNet CSP";
     alias = "VIPNet";
     type  = "capi";
     provider_name = "Infotecs Cryptographic Service Provider";
     provider_num  = "2";
 skip_pkcs11_list = "true";
   },
   { name  = "Криптопровайдер VipNet CSP Linux";
     alias = "VIPNet_linux";
     type  = "capi_linux";
     provider_name = "Infotecs Cryptographic Service Provider";
     provider_num  = "2";
     skip_pkcs11_list = "true";
   },
   { name  = "Криптопровайдер КриптоПро CSP";
     alias = "CryptoPro";
     type  = "capi";
     provider_name = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
     provider_num  = "75";
 skip_pkcs11_list = "false";
   },
   { name  = "Криптопровайдер Рутокен CSP";
     alias = "CryptoPro_Rutoken";
     type  = "capi";
     provider_name = "GOST R 34.10-2001 Rutoken CSP";
     provider_num  = "75";
 skip_pkcs11_list = "false";
   },
   { name  = "Криптопровайдер Signal-COM CSP";
     alias = "SignalCom";
     type  = "capi";
     provider_name = "Signal-COM CPGOST Cryptographic Provider";
     provider_num  = "75";
 skip_pkcs11_list = "false";
   },
   { name  = "Криптопровайдер  LISSI-CSP";
     alias = "LISSI-CSP";
     type  = "capi";
     provider_name = "LISSI-CSP";
     provider_num  = "75";
 skip_pkcs11_list = "false";
   },
   { name  = "Токен JaCarta";
     alias = "JaCarta";
     type  = "pkcs11";
 alg   = "gost2001";
 model = "eToken GOST,JaCarta GOST 2.0";
     lib_win   = "jcPKCS11-2.DLL";
     lib_linux = "libjcPKCS11-2.so.2.4.0";
     lib_mac   = "jcPKCS11-2";
   },
   { name  = "Рутокен ЭЦП";
     alias = "ruTokenECP";
     type  = "pkcs11";
 alg   = "gost2001";
 model = "Rutoken ECP";
     lib_win   = "rtpkcs11ecp.dll";
     lib_linux = "librtpkcs11ecp.so";
     lib_mac   = "librtpkcs11ecp.dylib";
   },
  {
         name = "CPPKCS11_2001";
         alias = "CPPKCS11_2001";
         type = "pkcs11";
         alg = "gost2001";
         model = "CPPKCS 3";
         lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
  },
  {
         name = "CPPKCS11_2012_256";
         alias = "CPPKCS11_2012_256";
         type = "pkcs11";
         alg = "gost2012_256";
         model = "CPPKCS 3";
         lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
  },
  {
         name = "CPPKCS11_2012_512";
         alias = "CPPKCS11_2012_512";
         type = "pkcs11";
         alg = "gost2012_512";
         model = "CPPKCS 3";
         lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
  }
 );

Обязательно делаем символьную ссылку на библиотеку pkcs11 из пакета CryptoPro для использования IFCPlugin, если до этого её еще не сделали

sudo ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so

Всё! Установку завершили по сути. Осталось теперь при первом входе на порталы установить расширения для CadeslPlugin и (Firefox сам предложит его установить при первом входе на портал где он используется)
 
Далее, для работы необходимо установить в CryptoPro по порядку:
— корневой сертификат
— промежуточные сертификаты
— личный с ссылкой на контейнер с закрытым ключом:
 
Установку личного сертификата можно производим командой

/opt/cprocsp/bin/amd64/csptestf -absorb -certs 

Если, по какой либо причине, необходимо удалить все установленные сертификаты из личного хранилища можно командой

/opt/cprocsp/bin/amd64/certmgr –delete –storeumy -all

Далее нужно убедиться что CryptoPro видит наш контейнер с закрытым ключом, обратите внимание что контейнер должен быть доступен обычному пользователю, под которым вы работаете в системе:

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn

примерный положительный вывод:

Если в контейнере с ключами хранятся связанные сертификаты например на rutoken s, то можно одной командой установить всю цепочку сертификатов вместе с ссылкой на данный ключевой контейнер:

/opt/cprocsp/bin/amd64/certmgr -inst -cont \.Aktiv Co. Rutoken S 00 00xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;

Этот xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx берем из предыдущей команды (видно на скрирншоте)  

Проверить что сертификат установлен и имеется ссылка на закрытый ключ (PrivateKey Link: Yes):  

/opt/cprocsp/bin/amd64/certmgr -list -store umy

Примерный вывод:

При установке всех компонентов обращаем внимание на то, чтобы ВСЕ компоненты были самыми свежими!

Для проверки рутокена заходим на: https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html#

Итого на дружбу рутокена и ubuntu ушло час делов с фотографированием процесса установки.

После всех манипуляций заходим на портал госуслуг без проблем с помощью рутокена.

Автор публикации

не в сети 2 недели

romanov

Аватар 0
Комментарии: 0Публикации: 2Регистрация: 16-08-2019

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

8 − 3 =

Авторизация
*
*

5 × один =

Регистрация
*
*
*

1 × пять =

Генерация пароля

девятнадцать − пять =