ОС

Настройка Госплагина в Яндекс.Браузере на Debian 12

Пошагово: установка .deb Госплагина на Debian 12, настройка симлинков native-messaging для Яндекс.Браузера, проверка allowed_origins и связи с CryptoPro.

Как правильно установить и настроить плагин «Госплагин» в Яндекс-браузере на Debian 12 для доступа к Госуслугам через электронную подпись?

Я перешел с Windows 10 на Debian 12 и успешно настроил работу крипто-про и электронных подписей. Однако при попытке входа на портал Госуслуги через электронную подпись сайт сообщает о необходимости установки плагина.

Я установил плагин в формате deb-пакета без ошибок. В Яндекс-браузере я также установил расширение «Госплагин» из интернет-магазина Chrome. При попытке входа на Госуслуги расширение в браузере сообщает о необходимости загрузки плагина на компьютер и снова предлагает скачать установочный скрипт для того же deb-пакета, создавая бесконечный цикл.

Версии плагина и расширения совпадают. Как решить эту проблему?

Бесконечный цикл «скачать плагин» при входе на Госуслуги чаще всего не из‑за некорректного .deb, а потому что расширение не может найти и подключиться к нативному хосту (native messaging) — отсутствует нужный JSON в каталоге native-messaging-hosts, нет символьной ссылки или не совпадают ID/allowed_origins. Правильная последовательность: закрыть браузер, проверить расположение ru.rtlabs.ifcplugin.json, создать симлинки в каталогах, где Яндекс ищет native messaging, проверить права и CryptoPro/CSP; при необходимости обновить расширение или установить корпоративную сборку Яндекс.Браузера. Детальная пошаговая инструкция с командами и проверками — ниже.


Содержание


Краткий обзор причины цикла установки и быстрый план действий

Чаще всего браузер продолжает предлагать скачать .deb, потому что расширение не связывается с нативным компонентом: файл native‑messaging‑host (обычно ru.rtlabs.ifcplugin.json) либо лежит в каталоге, который Яндекс не просматривает, либо у него неверные права или в allowed_origins отсутствует ID установленного расширения.
Короткий план: 1) закрыть браузер; 2) найти JSON и файлы плагина; 3) создать символьную ссылку в каталоге native‑messaging‑hosts, который использует Яндекс/Chromium; 4) проверить права и ID расширения; 5) перезапустить браузер и проверить логи. Подробно — далее с командами и проверками.


Требования и подготовка системы (Debian 12, CryptoPro, токены)

Перед установкой убедитесь, что у вас:

  • Debian 12 x86_64 (плагин поставляется как 64‑битный .deb, например IFCPlugin‑x86_64.deb).
  • Установлены криптопровайдеры/драйверы для вашего токена: Рутокен ЭЦП, eToken ГОСТ, JaCarta ГОСТ и т.п. (см. официальную страницу плагина). Подробнее о пакетах и совместимых токенах — на странице плагина Госуслуг ds-plugin.gosuslugi.ru.
  • Рекомендуется установить CryptoPro/CSP (если используете CryptoPro): пакет cryptopro‑csp или аналог; проверка контейнера выполняется через csptest (см. раздел диагностики и Astra Linux wiki для примеров команд).

Совет: перед операциями закройте все окна Яндекс‑браузера — многие шаги требуют, чтобы браузер не держал старые соединения.


Установка госплагина (.deb) на Debian 12 — пошагово

  1. Найдите имя установленного пакета (если ставили ранее):
bash
dpkg -l | grep -i -E "ifc|ifcplugin|rtlabs|gosp|gosuslugi"
  1. Удалите старые версии (если нужно):
bash
sudo apt remove --purge <package-name> # подставьте имя пакета из предыдущей команды
sudo apt autoremove -y
  1. Установите .deb:
bash
sudo dpkg -i /путь/к/IFCPlugin-x86_64.deb
sudo apt -f install -y
  1. Посмотрите, какие файлы установил пакет (важно найти JSON для native messaging):
bash
dpkg -L <package-name> | grep -i "native-messaging\|ifcplugin\|ru.rtlabs"
  1. Найдите точное расположение файла ru.rtlabs.ifcplugin.json:
bash
sudo find / -type f -name "ru.rtlabs.ifcplugin.json" 2>/dev/null

Если .deb установился без ошибок, но браузер всё равно просит скачать — продолжайте к разделу про симлинки и native messaging.


Установка расширения «Госплагин» в Яндекс‑браузере

  • Расширение нужно ставить из официального источника (Chrome Web Store / официальный репозиторий плагина) — об этом пишет официальная страница плагина Госуслуг; иногда неподходящая сборка расширения не совпадает с нативным хостом, поэтому берите официальную версию: Инструкция и ссылки на плагин.
  • В Яндекс‑браузере откройте chrome://extensions/ и включите режим разработчика, чтобы посмотреть ID расширения и ошибки расширения (см. раздел про allowed_origins ниже).
  • Если расширение старое или не из официального источника — удалите и установите заново из магазина. На практике обновление расширения иногда решает проблему распознавания уже установленного .deb (см. пример решения в сообществе: Habr Q&A).

Если Яндекс Браузер не видит Госплагин: символьные ссылки и native messaging

Почему так происходит? Chrome‑based браузеры (включая Яндекс) ищут файлы native messaging в системных каталогах, но разные сборки и дистрибутивы смотрят в разные места. Плагин может установить JSON в каталог /etc/opt/chrome/native-messaging-hosts, тогда как Яндекс ищет /etc/chromium/native-messaging-hosts или /usr/lib/yandex/native-messaging-hosts.

Алгоритм исправления (универсальный):

  1. Найдите JSON (повторно, если ещё не сделали):
bash
sudo find / -type f -name "ru.rtlabs.ifcplugin.json" 2>/dev/null
  1. Посмотрите, какие каталоги native‑messaging существуют:
bash
ls -d /etc/opt/*/native-messaging-hosts /etc/chromium/native-messaging-hosts /usr/lib/*/native-messaging-hosts 2>/dev/null
  1. Если JSON находится, например, в /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json, а у вас есть каталог /etc/chromium/native-messaging-hosts, создайте символьную ссылку:
bash
sudo mkdir -p /etc/chromium/native-messaging-hosts
sudo ln -sf /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json \
 /etc/chromium/native-messaging-hosts/ru.rtlabs.ifcplugin.json

(Аналогично создайте ссылку в /usr/lib/... или /etc/opt/yandex/..., если ваш Яндекс ищет туда.)

  1. Проверьте права и владельца:
bash
sudo chown root:root /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json
sudo chmod 644 /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json
  1. Закройте все экземпляры браузера и запустите заново:
bash
pkill -f yandex || true
# затем запустите браузер обычным способом

Пример: Astra Linux wiki прямо рекомендует создать символьную ссылку между каталогами native‑messaging, чтобы браузер нашёл плагин; это типичное решение для Linux‑сборок: https://wiki.astralinux.ru/pages/viewpage.action?pageId=53645439.

Если симлинк создан, но проблема остаётся — продолжаем к проверке ID/allowed_origins и логам.


Проверка связи расширения и плагина: allowed_origins и ID расширения

Расширение общается с нативным хостом только если JSON содержит allowed_origins с ID именно того расширения, которое установлено в браузере. Несоответствие — частая причина, когда расширение и нативный хост «не видят» друг друга, хотя версии совпадают.

Проверка и исправление:

  1. Узнайте ID расширения: в Yandex откройте chrome://extensions, включите «Режим разработчика», посмотрите строку ID для расширения «Госплагин». Скопируйте его (строка вида abcdefg...).
  2. Посмотрите содержимое JSON:
bash
sudo cat /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json

Внутри вы увидите поле “allowed_origins”: [“chrome-extension:///”, …].

  1. Если ID вашего расширения отсутствует — создайте резервную копию и добавьте его:
bash
sudo cp /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json \
 /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json.bak
# отредактируйте файл (например, через nano)
sudo nano /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json
# добавьте "chrome-extension://<your-extension-id>/" в массив allowed_origins
  1. Снова проверьте права (root:root, 644), перезапустите браузер.

Важно: редактирование пакетов — временное решение; при обновлении пакета файл может перезаписаться. Если вы добавляете ID вручную, сохраняйте копию и при обновлениях повторяйте изменение или создавайте симлинк на кастомный JSON в правильном каталоге.


Логи, диагностика и типичные ошибки (файл не найден, отсутствует лицензия, ошибка 2503)

Где смотреть:

  • Логи нативного компонента (если установлены): /var/log/ifc/engine_logs/engine.log — пример команды:
bash
sudo tail -n 200 /var/log/ifc/engine_logs/engine.log
  • Ошибки расширения в браузере: chrome://extensions -> Errors (режим разработчика) или открыть фоновую страницу расширения и смотреть консоль.
  • Системные журналы: journalctl -xe | grep -i ifc или dmesg | tail.

Проверка CryptoPro и контейнера:

bash
# пример проверки контейнеров (путь специфичен для CryptoPro)
sudo /opt/cprocsp/bin/amd64/csptest -keys -cont "Имя_контейнера"

(см. Astra Linux wiki для примеров работы с csptest и логами: https://wiki.astralinux.ru/pages/viewpage.action?pageId=53645439).

Типичные ситуации и решения:

  • «Файл не найден» / «расширение предлагает скачать плагин» — создайте симлинк, проверьте allowed_origins и права (см. разделы выше).
  • «Отсутствует лицензия» или «не удалось завершить работу госплагина» — проверьте версию .deb и совместимость с установленной библиотекой CryptoPro; попробуйте переустановить .deb и CryptoPro.
  • Ошибка 2503 — встречается при проблемах с установщиком/правами; переустановка пакета с правами root и очистка остаточных файлов обычно помогает.
  • Если обновление расширения помогало другим пользователям — стоит удалить расширение и установить заново из официального источника (пример решения: https://qna.habr.com/q/1405806).

Если всё перепробовано, но проблема остаётся: попробуйте временно использовать Chromium (где поведение native messaging может быть предсказуемее) или установите корпоративный пакет Яндекс.Браузера с преднастройкой (yandex-browser-customisation), который иногда решает конфликт путей и сертификатов — пример: https://t-wiki.ru/doku.php?id=articlesdebian:specialsoft:yandexbrowser и корпоративная страница Яндекса: https://browser.yandex.ru/corp/gov.


Проверка работы и финальные шаги

Шаги для подтверждения, что всё работает:

  1. Перезапустите браузер полностью.
  2. Откройте chrome://extensions, убедитесь, что расширение «Госплагин» включено и ошибок нет.
  3. Подключите токен и попробуйте выполнить вход на Госуслуги через «Вход по ЭП/Сертификату».
  4. Если вход не проходит — откройте консоль расширения или /var/log/ifc/engine_logs/engine.log и ищите сообщения о соединении native host.
  5. Для окончательной проверки используйте команды csptest (CryptoPro) для подтверждения, что контейнер виден системой.

Короткий чеклист (в порядке выполнения):

  • [ ] Закрыт Яндекс‑браузер.
  • [ ] .deb установлен корректно (dpkg -i + apt -f).
  • [ ] Найден ru.rtlabs.ifcplugin.json.
  • [ ] Симлинк создан в каталоге native‑messaging, который использует Яндекс.
  • [ ] allowed_origins содержит ID вашего расширения.
  • [ ] Права файла установлены (root:root, 644).
  • [ ] CryptoPro/CSP и токен работают (csptest).
  • [ ] Браузер перезапущен, вход через ЭП проходит.

Источники

  1. Официальная страница установки плагина Госуслуг: https://ds-plugin.gosuslugi.ru/plugin/upload/Index.spr
  2. Пример решения (обновление расширения) — сообщество Habr Q&A: https://qna.habr.com/q/1405806
  3. Инструкция по установке корпоративного Яндекс.Браузера (включая yandex‑browser‑customisation): https://t-wiki.ru/doku.php?id=articlesdebian:specialsoft:yandexbrowser
  4. Рекомендация по символьной ссылке и логам (Astra Linux wiki): https://wiki.astralinux.ru/pages/viewpage.action?pageId=53645439
  5. Корпоративный браузер для работы с Госуслугами — Yandex: https://browser.yandex.ru/corp/gov
  6. Практическое руководство по установке плагина в Яндекс.Браузер (сообщества): https://lumpics.ru/how-to-install-goslugi-plugin-on-yandex-browser/

Заключение

Если Яндекс‑браузер продолжает просить скачать .deb после корректной установки, это почти всегда проблема интеграции расширения и нативного хоста: неверный путь JSON, отсутствие симлинка, права или несоответствие allowed_origins/ID расширения. Исправьте расположение ru.rtlabs.ifcplugin.json (или создайте ссылку в каталоге native‑messaging, где ищет Яндекс), проверьте права и добавьте ID расширения в allowed_origins при необходимости; затем перезапустите браузер и проверьте логи и csptest для токена. Если хотите, пришлите выводы команд (результат find и содержимое JSON, а также ID расширения), и я подскажу точные команды для вашей конкретной конфигурации.

Авторы
Проверено модерацией
Модерация
Настройка Госплагина в Яндекс.Браузере на Debian 12