Еще не так давно периодическая процедура типа "сдача налоговой отчетности" заставляла нервно дергаться глаз: для того, чтобы сделать это онлайн - нужна электронная подпись на USB-токене, для того, чтобы работать с USB-токеном нужно установить специальную программу (широко известную в узких кругах), а для того чтобы установить эту специальную программу - нужен компьютер с Windows.
Да еще у нее может закончиться срок лицензии, и тогда его надо продлевать...

Но что делать, если больше ни для чего мне Windows не нужен нигде и никогда? Держать на полке специальный старый ноубук (который все время мешается)? Завести образ виртуальной машины, который нужно будет в определенное время запускать только ради того чтобы отправить файл?
Да еще периодически обновлять программу, выполнять хотелки типа "нужно установить версию ХХХ не ниже YYY!", бороться со странными багами после установки версии XXX...

Причем, нельзя это сделать где-то на сервере и работать удалённо - получится ошибка типа "по идейным причинам программа не работает с ключом через удаленный Рабочий стол!"- ну как-то так.
Изволь поставить на свой компьютер и работать лично! Очень "удобно", когда у тебя их несколько в разных местах...

Конечно, для большинства это вообще неактуально, так как они живут в Windows, но я про свой случай говорю, а не про всеобщий.
И вот наконец-то что-то изменилось.

По крайней мере для Рутокен, появилась поддержка работы с ним в Линуксе, а на сайте ИФНС научились обходиться без широко известной программы.

Теперь работает это примерно так:

Допустим, у нас юрлицо или ИП - в налоговой выдали электронную подпись, записав ее на Рутокен ЭЦП 2 или 3 (не Lite! Это другое!).
На сайте ИФНС заходим в соответствующий Личный Кабинет, и выбираем там что-то вроде "Вход в личный кабинет с помощью Рутокен ЭЦП ..."

Сайт либо сразу сам начнет проверять возможность работы, либо предложит "проверить условия подключения".
Условия следующие:
- один из совместимых браузеров (Chrome, Firefox, Яндекс.Браузер и даже какой-то Atom)
- установленный Рутокен Коннект (расширени браузера и программа)
- установленный Рутокен Плагин (расширение браузера и программа)
- сам USB-токен и сертификат на нём.

Можно, конечно, просто потыкать по предложенным ссылочкам, но мне стало интересно посмотреть, как оно работает "под капотом".
И вот, на примере Firefox - настроим работу с электронной подписью:

Браузер совместимый - ок, сразу переходим к следующему пункту: "Установить Адаптер Рутокен Коннект".
По ссылке устанавливается расширение браузера, но оно сразу не заработает, и вот почему:

Пока установилось только расширение браузера. В каталоге ~/.mozilla/firefox/<current_profile>/extensions/ появился файл rutokenconnect@rutoken.ru.xpi
По сути внутри javascript, который перехватывает определенные обращения на странице и перенаправляет их к программе на компьютере, а её-то у нас пока нет.
Если щелкнуть по сообщению об ошибке - браузер перейдет на страницу загрузки программы с сайта Рутокен.

В моем случае выбираю "Пользователям GNU/Linux" и ищу что-то подходящее, для платформы ARM64, потому что у меня - Armbian.
И да, оно там есть - не только под x86, но и под arm64.
Скачиваю .deb-файл, и можно просто установить его командой dpkg -i filename, но это не интересно.
Лучше распакую:

dpkg -x rtconnect-xxxx-arm64.deb dir1
cd dir1

Внутри - дерево каталогов, которые должны бы создаваться при установке.
Вручную можно перенести ./opt/activco и ./var/opt/activco - это сама программа и место для сертификатов, а в ./opt/activco/rutokenconnect/ есть файл ru.rutoken.rtconnect.firefox.json - ссылку на него нужно поместить в ~/.mozilla/native-messaging-hosts/

cd var
sudo cp -R opt /var/
cd ../opt
sudo cp -R activco /opt/
cd ~/.mozilla
mkdir native-messaging-hosts
cd native-messaging-hosts
ln -s /opt/activco/rutokenconnect/ru.rutoken.rtconnect.firefox.json .

Это примерно то же самое, что установка через dpkg -i, но только я сам вижу что и куда копировать, не ставлю лишнего, и прописываю native-message-hosts локально для конкретного пользователя.

Что это вообще и зачем: установленный плагин браузера смотрит вот в этот каталог native-messaging-hosts, ищет там подходящий для него json-файл, а в этом файле указано, с каким бинарником он должен взаимодействовать:

{
    "name": "ru.rutoken.rtconnect",
    "description": "Rutoken Connect",
    "path": "/opt/aktivco/rutokenconnect/rtconnect",
    "type": "stdio",
    "allowed_extensions": [ "rutokenconnect@rutoken.ru" ]
}

То есть, через stdio работает с программой, указанной в path.
После установки перезапускаем браузер, снова "проверяем условия подключения": теперь расширение браузера должно увидеть свою программу и заработать с ней.

Следующий шаг - расширение Адаптер Рутокен Плагин и соответствующий бинарный файл к нему - всё точно так же, по тому же принципу.

Ну и наконец, после того как всё установлено - остается вставить USB-токен, и зайти в систему.

А если вы не хотите, чтобы какие-то там расширения могли случайно подсматривать, что у вас за страницы открыты - их, во-первых, можно просто отключить на время, а во-вторых, ничего не мешает создать в системе отдельного пользователя и настроить расширения там.

Также, теоретически, можно настроить это всё на удаленном сервере, подключаясь к нему rdp-клиентом.

Но главное, больше не нужно хранить отдельную машину только ради того чтобы иногда читать ключи.
Могут же сделать хорошо, когда хотят...

Комментарии (7)


  1. baldr
    28.09.2025 18:16

    Спасибо, очень полезная статья. Закрыл ИП в этом году, но ситуация знакомая и глаз дёргался, да..

    Ставить всякие .deb-пакеты под sudo в систему - не оч хорошая идея для параноиков. Оно, там, между прочим, сертификаты ставит, а мы все знаем для чего нужны доверенные сертификаты. Я бы в следующий раз себе попробовал как-то это всё упаковать в контейнеры - Docker или Snap. Вместо Firefox, возможно, лучше подойдёт Chromium-Gost - он специально собирается с поддержкой ГОСТ-шифрования.


    1. JBFW Автор
      28.09.2025 18:16

      Вот поэтому неизвестный deb распаковываю, и ручками.

      Там же еще установочные скрипты, кто его знает что они сделают....


  1. Popadanec
    28.09.2025 18:16

    Недавно систему переустанавливал, т.к. диск зашатался, вспомнилось. Одна из программ нужная для работы ЭП, лежит на отдельном сайте, чтобы скачать её, нужна обязательная авторизация. С плагинами тоже какие то траблы были. А в целом софт и сайты для ЭП как будто родом из девяностых.


  1. middle
    28.09.2025 18:16

    Я когда-то это всё делал с макбука на M1, в итоге запустил в облаке виртуалку с виндой, и через RDP пробросил USB-токен (да!).


    1. JBFW Автор
      28.09.2025 18:16

      Но как?

      Тот самый широко известный софт отказывается работать с ключом в rdp-сессии. Ни физически подключенным, ни проброшенным - именно потому что в rdp, типа небезопасно.


      1. Feod0r
        28.09.2025 18:16

        Вот как раз проброшенный по rdp токен это предпочитаемый способ использования в виртуальной машине. И в маке эта процедура работает без геморроя.


  1. checkpoint
    28.09.2025 18:16

    Да, всё так. Сам лично прочувствовал весь этот гимор на собственно задшкуре. И регулярные апдейты "версия XXX ниже чем верси YYY" вручную просто задрали. Я пытался автоматизировать процесс, но графическое приложение не поддается автоматизации. Может быть кто-то знает секретные опции командной строки (если они вообще есть) ?

    А еще я всё это пытался сначала проделать на FreeBSD, трейсил известное приложение (оно ни как не хотело запускаться в Linuxulator-е), но всё без результатно. Пришлось поставить на бухгалтерский комп ALT Linux и Chromium GOST для таких вот специфических задач и ходить на него удаленно (бухгалтер в основном работает из дома и тоже подключается удаленно).