По всей видимости это повышение устойчивости к утечек информации. Грубо говоря, это проксирование обращений через программу к серверам ФСС.
Выглядит, как очень плохой костыль. В принципе, ничего нового. И почему нельзя это было реализовать внутри программы тоже непонятно.
Давайте разбираться.
Содержание
Общий принцип работы
Это не официальная информация, а моё понимание и представление. В логике разработчиков, что на каждой рабочей станции должен работать ФСС Маршрутиризатор. Я в этом вижу ряд неудоств. Во-первых, это куча времени на настройку каждого рабочего места. Во-вторых, это необходимо дополнительно сотрудникам, кто работает с СФР, объяснять и показывать, как запустить программу ФСС Маршрутиризатор и говорить, что его ни в коем случае нельзя закрывать.
Поэтому для себя я выбрал такую схему. В сети будет один сервер, к которому будут обращаться другие.
Визуально это выглядит вот так:
Подготовка
Поскольку, я буду делать это все на отдельной виртуальной машине внутри локальной сети – покажу пример именно такого сценария. Ваш сценарий может отличаться. Учтите это.
В процессе установки нам потребуется Java8, КриптоПро JCP, ФСС Маршрутиризатор. Ссылки для загрузки:
- Скачать дистрибутив можно по ссылке: https://lk-test.fss.ru/tls.html
- Скачать дистрибутив Java8 можно по ссылке: https://www.java.com/ru/download/
- Скачать КритоПро JCP / JCP 2.0 можно по ссылке: https://www.cryptopro.ru/products/csp/jcp
Установка СФР Маршрутизатор
Установка происходит стандартно, ничего не меняем.
После установки надо отредактировать файл fss_mo.ini
Открываем любым текстовым редактором файл C:\FssRouter\fss_mo.ini, удаляем содержимое и вставляем вот такое:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
-startup plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133 -clearPersistedState -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -vmargs -DFile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djavax.net.ssl.trustStore=C:\FssRouter\gost.keystore -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.provider=ru.CryptoPro.JCP.JCP -Dssl.KeyManagerFactory.algorithm=GostX509 -Dssl.TrustManagerFactory.algorithm=GostX509 -Dssl.SocketFactory.provider=ru.CryptoPro.ssl.SSLSocketFactoryImpl -Dssl.ServerSocketFactory.provider=ru.CryptoPro.ssl.SSLServerSocketFactoryImpl -Djavax.net.ssl.provider=ru.CryptoPro.JCP.JCP -Djavax.net.ssl.trustStoreType=HDImageStore -Dtls_prohibit_disabled_validation=false -Dcom.sun.security.enableCRLDP=true -Dcom.ibm.security.enableCRLDP=true -Djava.security.properties="C:\FssRouter\jre\lib\security\java.security" -Djavax.net.debug=ssl:handshake -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 |
Обратите внимание на строчки
-Djavax.net.ssl.trustStore=C:\FssRouter\gost.keystore
-Djava.security.properties="C:\FssRouter\jre\lib\security\java.security"
Если меняли пути установки – тут тоже требуется внести изменения.
Установка Java8
Для работы КриптоПро JCP требуется Java8.
Её необходимо скачать и установить на рабочую станцию, где мы устанавливает СФР Маршрутизатор.
Установка стандартная. Ничего не меняем. Перезагружаем комп/сервер (иначе будет ошибка, описана в траблшуте).
Установка КриптоПро JCP / JCP 2.0
Для этого не требуется лицензия Крипто-Про, достаточно зайти на сайт https://www.cryptopro.ru/products/csp/jcp
Перейти в раздел загрузки:
Далее необходимо войти (создать учетку) для загрузки. Это бесплатно. Выдыхаем.
Согласиться с Лиц. соглашением.
Далее на странице нужно найти: “КриптоПро JCP и JTLS R3 (2.0.40502 для Java 8)”
Далее распакуем архив jcp-2.0.40502и запустим файл setup.exe
Далее выбираем “Установить”, принимаем лиц. соглашение. На пункте “Выберите JRE” нужно указать jre от ФСС. Стандартно он по пути C:\FssRouter\jre
Выбор продуктов у нас должен выглядеть вот так:
На шаге серийный номер просто оставляем все пустое и пропускаем.
Запускаем процесс установки и ждем завершения.
Первый запуск
Запускаем программу ФСС Маршрутизатор. И первым делом необходимо указать порт через который к нам будут обращаться клиенты (ФСС МЧД, ФСС АРМ ЛПУ и т.д.).
Разработчик рекомендует 8080, но утверждает, что можно запустить на любом свободном порту. Не будем злить ФСС и оставим, как они рекомендуют. Далее надо актировать галочки сервисов, которые мы используем. В моем примере это ЭЛН.
Строчка ЭЛН: https://eln.sfr.gov.ru/ws-mo-crypto/FileOperationsLnService?wsdl
Полный список строчек находиться тут: https://lk-test.fss.ru/tls.html
И запускаем маршрутизатор. Если всё окей — будет такая картинка:
Для проверки можно попробовать открыть в браузере адрес http://localhost:8080/eln для ЭЛН
Примерная картинка будет вот такой:
Открываем порт для всех
Теперь, когда локально у нас настроен СФР Маршрутизатор можно открыть доступ для всех компьютеров в локальной сети и попробовать подключиться. Тут может инструкция отличаться, т.к. у Вас могут быть не штатные инструменты Firewall. Я опишу на штатном брандмауэре.
Правой кнопкой по “Правила для входящих подключений” → создать правило
Указываем правило для порта:
Указываем порт, который мы указали в настройках СФР Маршрутизатор
Разрешаем подключение
И указываем профили, оставим все галочки.
Имя укажем любое. Главное понимать, что это.
Что делать дальше?
В этом примере у нас два объекта: виртуальный сервер ФСС Маршрутизитор и компьютер с ФСС ЭЛП, где выпускают больничные листы для пациентов. После того, как мы открыли порт подключения 8080 на сервере – клиенты могут к нему обращаться.
В примере IP адрес сервера СФР Маршрутизатор имеет IP адрес 192.168.1.181
Для проверки связи, откроем браузер и попробуем перейти по ссылке http://192.168.1.181/eln
ФСС АРМ ЛПУ сначала его необходимо обновить до последний версии 2_01_27 (прямая ссылка на загрузку https://lk.fss.ru/fss_eln_setup_2_01_27_20260525_01_x64.exe). В принципе, тут ничего нового, если Вы не знаете как это делается то вот тут мой гайд: https://bite-byte.ru/programmy/fss/obnovlenie-fss-arm-lpu/. Процесс стандартный.
После обновления
Теперь возьмём, ФСС ЭЛН:
Запускаем программу. Переходим на вкладку Администрирование → Настройка сервисов СФР.
И меняем строчку (старая строчка) на http://192.168.1.181:8080/eln
Нажимаем на “Проверить соединение”, если всё успешно, то мы увидим вот такое сообщение:
Больше никаких изменений не требуется. И в работе врача ничего не меняется.
Мои мысли на этот счёт
Хочу описать важные моменты, которые мне сразу не понравились.
- Разработчик ФСС принуждает (может, и не специально) ставить нас СФР Маршрутиризатор на каждую рабочую станцию. Это ужасный геморрой и для системного администратора, и для врача. Попробуйте каждому объяснить, что теперь для выдачи больничного надо запускать две программы. Врачи не должны в этих технических моментах разбираться. Совсем. Они врачи – людей лечат. Итог этой мысли: возможно, идея то и здравая, но реализация хромает. Разработчик должен учитывать, что его конченый пользователь врач, а не bite-byte)))
- Чем у нас больше элементов тем выше вероятность поломки. Добавляется еще один продукт за которым требуется следить. Я не совсем понимаю почему нельзя это все было “вшить” в основную программу. Но видимо, там очень жесктие технические моменты, которые еще и идут в связке с требованием ФСБ и прочими структурами, кто отвечает за безопастность.
- Зная, что ФСС частенько после обновлений потом еще “шлифует” свой программный продукт – нас ждут баги, обновления и веселье.
Траблшут
Ошибка при выполнение установки JCP 2.0.40502
Текст ошибки:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Can not install package JCryptoP. java.io.IOException: Failed to process C:\FssRouter\jre\lib\security\java.security at ru.CryptoPro.Install.PropertyTools.parseProperties(Unknown Source) at ru.CryptoPro.Install.cl_2.c(Unknown Source) at ru.CryptoPro.Install.SecurityProperties.addSecurityLinksInternal(Unknown Source) at ru.CryptoPro.Install.SecurityProperties.addSecurityLinks(Unknown Source) at ru.CryptoPro.Crypto.JCryptoPInstaller.install(Unknown Source) at ru.CryptoPro.Install.AbstractInstaller.b(Unknown Source) at ru.CryptoPro.Install.ShellInstaller.h(Unknown Source) at ru.CryptoPro.Install.ShellInstaller.makeAction(Unknown Source) at ru.CryptoPro.Install.ShellInstaller.makeActionNoEx(Unknown Source) at ru.CryptoPro.Install.VariantTwo.main(Unknown Source) ru.CryptoPro.Install.InstallError: Install error. at ru.CryptoPro.Install.AbstractInstaller.b(Unknown Source) at ru.CryptoPro.Install.ShellInstaller.h(Unknown Source) at ru.CryptoPro.Install.ShellInstaller.makeAction(Unknown Source) at ru.CryptoPro.Install.ShellInstaller.makeActionNoEx(Unknown Source) at ru.CryptoPro.Install.VariantTwo.main(Unknown Source) Error occurred during installing! |
Скриншот:
Решение: Я ставил Java и не перезагрузился. После перезагрузки ошибка ушла и процесс установки завершился.
Если мой материал был полезен, то можете угостить меня кофе ☕️

























