Электронная цифровая подпись (ЭЦП)
Автор: nibbl | Время чтения: 2 минуты | Дата публикации: 04.10.2022 | Обновлено: 04.10.2022
В этой статье мы рассмотрим, как настроить браузер Mozilla Firefox для работы с порталом Госуслуги, чтобы можно было заходить на сайт и подписывать документы с использованием ЭЦП.
Приветствую всех! Предлагаю вашему вниманию краткую инструкцию для тех, кто столкнулся с необходимостью использования портала Госуслуги через браузер Mozilla Firefox.
В моей ситуации проблема возникла уже в системе, когда нужно было расторгнуть договор с трудовым мигрантом, и у нас возникала ошибка.
В интернете мы обнаружили, что данная ошибка возникает, если сервис временно недоступен. Однако спустя некоторое время ситуация не изменилась, и в техподдержке нам посоветовали использовать для работы браузер Mozilla Firefox, и вот тут начались настоящие проблемы.
Настройка ЭЦП в Google Chrome и Mozilla Firefox
При входе на сайт госуслуг через ЭЦП у вас может возникнуть ошибка: — Не установлен плагин
и предлагается выполнить действия для его установки
Первое, что необходимо сделать — это установить плагин, перейдя по ссылке — https://ds-plugin.gosuslugi.ru/plugin/upload/Index.spr
И вот здесь я застрял на длительное время, не понимая, что делаю неправильно и почему плагин не работает и не предлагает выбрать ЭЦП для входа на портал госуслуг.
А вся суть проблемы оказалась в том,
Когда мы переходим на сайт, мы сразу кликаем на первую ссылку (стрелка на рис. 1) и не обращаем внимания на две нижние кнопки.
Для того чтобы плагин для ЭЦП заработал в браузерах Mozilla Firefox и Google Chrome, нужно нажать на соответствующую кнопку (стрелка на рис. 2). В моем случае это был Firefox, и после клика нас перенаправляет на другую страницу, где мы устанавливаем плагин.
По завершении установки можно убедиться, что плагин успешно установлен.
Способы проверки установленного плагина для ЭЦП в Mozilla Firefox
Кликните на иконку с тремя линиями (меню)
в разделе Дополнения и темы можно увидеть все установленные плагины в вашем браузере
Как можно заметить, у нас установлен плагин или расширение — Дополнение для плагина Госуслуги
и его статус активен (индикатор синего цвета)
Обеспечиваем работу плагина госуслуг для всех пользователей в терминальной среде
Обеспечиваем работу плагина госуслуг для всех пользователей в терминальной среде
Уже более года все наши сотрудники работают исключительно в опубликованных приложениях, которые централизуются через Parallels RAS. У нас также имеется автоматический механизм публикации ЭЦП: когда авторизованный пользователь заходит на сайт, например, таможни, предварительно в его HKCU записывается ЭЦП компании и запускается нужный плагин. Это прекрасно работает с КОНТУР, СБИС, КРИПТО-ПРО, но плагин от госуслуг (IFCPlugin) потребовал доработок, и к разработчикам остались вопросы…
Когда поступила заявка на установку очередного плагина для чтения ЭЦП, я не ожидал никаких сложностей. Для работы с ЭЦП у нас выделен отдельный RDS-хост, на котором уже установлено несколько плагинов, и всё отлично функционирует. Я скачал плагин госуслуг с официального сайта и запустил установку в машинном контексте из привилегированного шелла:
msiexec -i c:pathtofilemypackage.msi ALLUSERS=1
На первый взгляд, установка прошла успешно. В списке установленных программ на этом хосте появился «Плагин пользователя систем электронного правительства», и под своей учетной записью я смог авторизоваться с помощью ЭЦП. Однако у других пользователей плагин не заработал, словно и не был установлен.
Куда же ты запропастился?
Плагин госуслуг, в отличие от других подобных решений, никак не уведомляет пользователя о своем присутствии. Нет иконки в трее, нет группы в стартовом меню, и я не нашел его в «Program Files». Так как под моей учетной записью авторизация в Chrome работала, а она функционирует с помощью браузерного плагина, который должен иметь MessagingHost, я решил поискать этот процесс.
Каково же было мое удивление, когда я обнаружил этот процесс (ifc_chrome_host.exe) в собственном $Env:APPDATA! Иными словами, инсталлятор плагина, полностью игнорируя машинный контекст, установил приложение внутри моего профиля. Причем даже не в $Env:LOCALAPPDATA, а в подлежащую роумингу часть профиля. У нас включен роуминг аппдаты (на эту тему можно долго спорить, но мы считаем, что в нашем случае это правильно). То есть IFCPlugin установился в мой профиль, хранящийся на файловом сервере, куда доступ имею только я, но зарегистрировал себя и свои классы в машинном контексте на RDS-хосте. Логично, что у других пользователей плагина, по сути, не было.
Достаем напильник
Открываем старую добрую orca и смотрим на структуру директорий установщика IFCPlugin.msi:
TARGETDIR = AppDataFolder. Чем руководствовались разработчики, я понять не смог. Заменяем на ProgramFiles64Folder или ProgramFilesFolder по вкусу.
Смотрим, что с реестром:
Как можно заметить, всё, кроме классов, прописывается в HKCU. Так как меня интересовала работа только плагина для Google Chrome, я изменил ветку только для трёх отмеченных параметров на 2, что соответствует HKLM. Предполагаю, что для Firefox это также будет работать аналогично.
Ещё одна доработка
Произвожу установку заново. Плагин, как и ожидалось, появляется в $Env:ProgramFiles, но у пользователей сразу же прекращается процесс ifc_chrome_host.exe, несмотря на его запуск. Используем procmon для анализа недостатков.
Выясняется, что он пытается записывать логи в следующую директорию:
$Env:ProgramFilesRostelecomIFCPluginX.X.X.Xx32LOGS
Пользователи, по умолчанию, не имеют прав на запись в эту папку. Исправляем это.
Заключение
Всё работает. Почему разработчики приняли такое решение и зачем это было сделано именно таким образом, для меня остаётся загадкой.