LinuxRuLinux без лишней теории
Электронная подпись

Как войти на Госуслуги по ЭП в Linux: КриптоПро CSP, плагины, Рутокен и JaCarta

Редакция LinuxRu7 мин чтенияИнструкции

КриптоПро в Linux ставится из архива с cryptopro.ru скриптом install.sh, а для входа на Госуслуги по ЭП дополнительно нужны плагин Госуслуг для Linux и расширение Госплагин в браузере. Токены Рутокен и JaCarta работают через службу pcscd. Ниже порядок установки для Ubuntu, Debian, Fedora и российских дистрибутивов, установка сертификата с токена и разбор ошибок вроде "Плагин не обнаружен".

Как войти на Госуслуги по ЭП в Linux: КриптоПро CSP, плагины, Рутокен и JaCarta
Фото: Kharitonov, CC BY-SA 3.0, Wikimedia Commons
Содержание
  1. Схема
  2. Подготовка
  3. Установка CSP
  4. Рутокен и JaCarta
  5. Сертификат
  6. ЭЦП Browser plug-in
  7. Вход на Госуслуги
  8. Ошибки
  9. Удаление
  10. Частые вопросы

Из чего состоит связка для электронной подписи

Половина проблем с ЭП в Linux возникает из-за путаницы: какой компонент за что отвечает и какой из них не установлен. Цепочка выглядит так: сайт обращается к расширению браузера, расширение через механизм native messaging запускает системный плагин, плагин просит криптопровайдер подписать данные, а тот достаёт ключ с токена через службу pcscd.

КомпонентЗачем нуженГде взять
pcscd, libccid, openscСлужба и драйверы для работы со смарт-картами и токенамиРепозиторий дистрибутива
КриптоПро CSP 5.0Криптопровайдер с ГОСТ-алгоритмами, хранит контейнеры ключейcryptopro.ru, после регистрации
Модули носителейПоддержка Рутокен и JaCarta в CSP, PKCS#11-библиотекиВ архиве CSP, rutoken.ru, aladdin-rd.ru
КриптоПро ЭЦП Browser plug-in 2.0Подпись на сайтах, которые работают через КриптоПро: ФНС, торговые площадкиcryptopro.ru, бесплатно
Плагин ГосуслугСистемная часть для входа и подписи на ГосуслугахСтраница плагина на портале Госуслуг
Расширение ГосплагинМост между сайтом Госуслуг и системным плагиномМагазин расширений Chrome

Для одних только Госуслуг с токеном Рутокен ЭЦП 2.0 или 3.0, где ключ сгенерирован внутри токена, КриптоПро часто не нужен: плагин Госуслуг работает с такими токенами напрямую через PKCS#11. КриптоПро обязателен, если ключ лежит в контейнере КриптоПро (так выдают большинство подписей для бизнеса) и для сайтов, где в требованиях указан ЭЦП Browser plug-in.

Какой дистрибутив и браузер выбрать

КриптоПро официально поддерживает deb- и rpm-системы: Astra Linux, ALT, РЕД ОС, РОСА, Debian, Ubuntu и другие. Проще всего на российских дистрибутивах, где пакеты проверены вендором, обзор таких систем есть в статье о российских дистрибутивах. В Ubuntu 26.04, Debian 13 и Fedora 44 тоже работает, но иногда требует ручных правок. Arch официально не поддерживается, пакеты в AUR неофициальные.

Браузер берите на Chromium (Яндекс Браузер, Chromium, Chrome) или Firefox, установленный из deb или rpm. Snap- и Flatpak-версии живут в песочнице и часто не могут запустить системный плагин, отсюда вечное "Плагин не обнаружен". Как поставить браузер нативным пакетом, описано в обзоре браузеров для Linux. Яндекс Браузер дополнительно умеет TLS по ГОСТ для госсайтов, если в системе установлен КриптоПро CSP.

Сначала поставьте службу смарт-карт и проверьте, что токен виден системе:

# Debian/Ubuntu
sudo apt install pcscd libccid opensc pcsc-tools
# Fedora
sudo dnf install pcsc-lite pcsc-lite-ccid opensc pcsc-tools
sudo systemctl enable --now pcscd.socket
pcsc_scan

В выводе pcsc_scan должен появиться ридер вида "Aktiv Rutoken" или "Aladdin JaCarta". Выход по Ctrl+C.

Установка КриптоПро CSP 5.0

Дистрибутив скачивается на cryptopro.ru в разделе загрузок после бесплатной регистрации. Для Ubuntu и Debian берите архив linux-amd64_deb.tgz, для Fedora, ALT и РЕД ОС архив linux-amd64.tgz с rpm-пакетами. Без ввода лицензии CSP работает 90 дней в полном режиме.

cd ~/Загрузки
tar xvf linux-amd64_deb.tgz
cd linux-amd64_deb
# графический мастер с выбором компонентов
sudo ./install_gui.sh
# или установка базового набора без вопросов
sudo ./install.sh

Скрипт install.sh ставит основные пакеты CSP, lsb-cprocsp-pkcs11, графический модуль cprocsp-rdr-gui-gtk и модули поддержки носителей. Если не хватает системных зависимостей, установщик назовёт пакет, доставьте его через apt или dnf и запустите скрипт снова.

Утилиты CSP лежат вне PATH. Чтобы не писать полный путь каждый раз, добавьте каталоги в ~/.bashrc:

export PATH="$PATH:/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64"
# проверка лицензии и ввод серийного номера
sudo cpconfig -license -view
sudo cpconfig -license -set XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Рутокен и JaCarta: модули и проверка

Для Рутокен в CSP 5.0 нужны пакеты cprocsp-rdr-pcsc и cprocsp-rdr-rutoken, обычно install.sh ставит их сам. Для Рутокен ЭЦП 2.0 и 3.0 дополнительно пригодится PKCS#11-библиотека librtpkcs11ecp со страницы загрузок rutoken.ru: её используют плагин Госуслуг и другие программы, работающие с токеном напрямую.

Для JaCarta установите "Единый клиент JaCarta" для Linux с сайта Аладдин Р.Д. и модуль cprocsp-rdr-jacarta, если его нет в архиве CSP.

Проверка, что криптопровайдер видит ридер и контейнеры на токене:

csptest -card -enum -v -v
csptest -keyset -enum_cont -fqcn -verifyc

Вторая команда выводит имена контейнеров вида \\.\Aktiv Rutoken ECP 00 00\имя. Пустой список при видимом ридере означает, что ключ на токене не в формате КриптоПро, то есть неизвлекаемый ключ PKCS#11, либо не установлен модуль носителя.

Не держите на одной машине несколько криптопровайдеров, например КриптоПро и ViPNet CSP одновременно. Они конфликтуют за одни и те же носители, а ошибки при этом выглядят как поломка токена.

Установка личного и корневого сертификата

Чтобы браузерный плагин видел подпись, сертификат из контейнера нужно поставить в личное хранилище пользователя с привязкой к ключу. Самый простой способ забирает сертификаты из всех подключённых контейнеров:

csptestf -absorb -certs -autoprov

Для одного конкретного контейнера:

certmgr -inst -cont '\\.\Aktiv Rutoken ECP 00 00\имя_контейнера'
certmgr -list -store uMy

Корневой сертификат удостоверяющего центра, выдавшего подпись, ставится в хранилище доверенных корневых. Файл берётся на сайте вашего УЦ:

sudo certmgr -inst -store mRoot -file ~/Загрузки/root_ca.cer

Без корневого и промежуточных сертификатов подпись формально создаётся, но сайт отвечает, что цепочка не проверена.

КриптоПро ЭЦП Browser plug-in

Архив cades-linux-amd64.tar.gz скачивается со страницы плагина на cryptopro.ru. Внутри два нужных пакета: сначала ставится cades, потом plugin.

tar xvf cades-linux-amd64.tar.gz
cd cades-linux-amd64
# Debian/Ubuntu
sudo apt install ./cprocsp-pki-cades-64_*.deb ./cprocsp-pki-plugin-64_*.deb
# Fedora, ALT, РЕД ОС
sudo dnf install ./cprocsp-pki-cades-*.rpm ./cprocsp-pki-plugin-*.rpm

Для работы плагина обязателен пакет cprocsp-rdr-gui-gtk, а пакет cprocsp-rdr-gui должен отсутствовать. Затем поставьте в браузер расширение CryptoPro Extension for CAdES Browser Plug-in из магазина Chrome, для Firefox расширение лежит на странице плагина КриптоПро. Перезапустите браузер полностью.

Проверить связку можно на демо-странице CAdES-BES на сайте КриптоПро: должен появиться список сертификатов, а после нажатия "Подписать" и ввода PIN строка с подписью. Сайты, на которых вы подписываете документы, добавьте в список доверенных, чтобы плагин не спрашивал подтверждение каждый раз. Список хранится в /etc/opt/cprocsp/trusted_sites.html и редактируется через ту же страницу настроек плагина.

Плагин Госуслуг и вход по электронной подписи

  1. На странице входа Госуслуг выберите "Эл. подпись". Портал предложит скачать плагин: выберите версию для Linux, deb или rpm.
  2. Установите пакет. Он требует pcscd, поэтому службу из раздела выше нужно поставить заранее:
    sudo apt install ./IFCPlugin-x86_64.deb
    # или
    sudo dnf install ./IFCPlugin-x86_64.rpm
  3. Установите в браузер расширение Госплагин из магазина Chrome. Старое название системной части IFCPlugin, расширение и плагин должны быть одного поколения, иначе портал бесконечно предлагает скачать плагин.
  4. Закройте браузер полностью и откройте снова. Вставьте токен, выберите вход по ЭП, сертификат и введите PIN.
  5. Если портал отвечает, что вход по электронной подписи отключён, подпись принята, осталось включить такой вход в настройках безопасности профиля.

Плагин ставится в /opt/iitrust/gosuslugi_plugin и регистрируется в браузере файлом-манифестом native messaging с именем ru.rtlabs.ifcplugin.json. Для Chrome он лежит в /etc/opt/chrome/native-messaging-hosts, для Chromium в /etc/chromium/native-messaging-hosts, для Яндекс Браузера в /etc/opt/yandex/browser/native-messaging-hosts. Если браузер не видит плагин, скопируйте манифест в каталог своего браузера.

Частые ошибки и как их снять

  • "Плагин не обнаружен". Браузер из snap или Flatpak, нет манифеста native messaging в каталоге браузера или не перезапущен браузер. Проверьте все три пункта именно в таком порядке.
  • Окно ввода PIN не появляется. В Wayland-сессии оно может открыться под окном браузера, нажмите Alt+Tab.
  • Ошибка 30033, провайдер не поддерживается. Сертификат установлен без привязки к ГОСТ-провайдеру. Переустановите его с явным указанием провайдера:
    certmgr -inst -cont '\\.\Aktiv Rutoken lite 00 00\имя' -provname "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -provtype 80
  • Плагин Госуслуг падает в Ubuntu 24.04 и новее. Старые сборки плагина требовали libssl1.1, которой в новых Ubuntu нет. Сначала скачайте свежую версию плагина с портала. Ставить libssl1.1 из архива старых релизов Ubuntu - крайняя мера: это библиотека без обновлений безопасности.
  • Зависание при поиске сертификатов. Плагин перебирает модули всех типов токенов. Пользователи Рутокен решают это переименованием модулей eSmart и JaCarta в каталоге /opt/iitrust/gosuslugi_plugin/bin, добавляя к имени .bak.
  • PIN не подходит. У новых Рутокен пользовательский PIN по умолчанию 12345678. После нескольких неверных попыток токен блокируется, разблокировка возможна PIN-кодом администратора.

Удаление и переустановка

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

cd ~/Загрузки/linux-amd64_deb
sudo ./uninstall.sh
sudo apt purge ifcplugin cprocsp-pki-plugin-64 cprocsp-pki-cades-64

Имена пакетов могут отличаться в зависимости от версии, список установленного покажет dpkg -l | grep -i -e cprocsp -e ifc. Ключи на токене при этом не страдают, они хранятся на носителе. Лицензию после переустановки CSP придётся ввести заново.

Если после Госуслуг дело дошло до бухгалтерии и документов, пригодятся материалы о 1С на Linux и об офисных пакетах.

Частые вопросы

Нужна ли платная лицензия КриптоПро CSP?

Первые 90 дней CSP работает без лицензии. Дальше нужен серийный номер. Часто лицензия на CSP уже включена в сертификат или токен, выданный удостоверяющим центром, уточните это у своего УЦ.

Можно ли войти на Госуслуги без КриптоПро?

Да, если ключ сгенерирован внутри токена с PKCS#11, например Рутокен ЭЦП 2.0 или 3.0. Плагин Госуслуг работает с таким токеном напрямую. Для ключей в контейнере КриптоПро нужен CSP.

Какой браузер лучше для ЭП в Linux?

Яндекс Браузер или Chromium, установленные deb- или rpm-пакетом. Яндекс Браузер вдобавок поддерживает ГОСТ TLS при установленном КриптоПро CSP. Snap- и Flatpak-сборки для подписи не подходят.

Работает ли КриптоПро в Arch Linux?

Официально нет. В AUR есть неофициальные пакеты, но для работы с подписью надёжнее Ubuntu, Debian, Fedora или российские дистрибутивы из списка поддержки КриптоПро.

Почему Госуслуги постоянно предлагают скачать плагин?

Обычно версия расширения Госплагин не совпадает с версией системного плагина или браузер не видит манифест native messaging. Обновите плагин с портала, проверьте каталог манифестов и полностью перезапустите браузер.

Документация и источники

Читайте также

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