Многие пользователи системы ЕГАИС сталкиваются с распространенной и довольно сложной проблемой: служба Transport Универсального Транспортного Модуля (УТМ) запускается на короткое время, а затем немедленно останавливается. Это приводит к невозможности обмена данными с ЕГАИС и нарушению бизнес-процессов (особенно если возникают риски при покупке оборудования на маркетплейсах) — для решения этой проблемы подойдёт модуль автоматического обмена с ЕГАИС и восстановления данных УТМ. Давайте рассмотрим, почему это происходит, какие диагностические шаги мы можем предпринять и какие существуют методы исправления этой ошибки.
Служба Transport является ключевым компонентом УТМ, обеспечивающим взаимодействие с серверами ЕГАИС (подобно тому, как в маркировке требуется извлечение DataMatrix кодов из документов) — для контроля её состояния есть инструмент автоматизации ЕГАИС и мониторинга работоспособности УТМ. Её некорректная работа может быть вызвана множеством факторов, начиная от проблем с криптографическими ключами и сертификатами, заканчивая конфликтами портов и системными ошибками.
Когда служба Transport УТМ постоянно останавливается, наш первый шаг — это тщательная диагностика. Мы сосредоточимся на системных журналах Windows и лог-файлах самого УТМ, так как они содержат наиболее важную информацию о причинах сбоя.
C:\UTM\transporter\l\
transport_info.log: Основной лог работы службы Transport.daemon-error.log: Содержит информацию об ошибках запуска демона службы.update.log: Лог службы обновления, которая также может влиять на работу Transport.Мы открываем эти файлы (начиная с daemon-error.log или transport_info.log) и просматриваем их с конца, чтобы найти самые свежие записи. Нас интересуют строки, содержащие слова "ERROR" или "Caused by". В одном из случаев мы можем обнаружить следующую критически важную ошибку:
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: ГОСТ хранилище не содержит подходящего сертификата
Эта ошибка прямо указывает на проблему с криптографическим сертификатом ГОСТ, который УТМ не может найти или использовать.
Если диагностика указывает на проблемы с сертификатами, особенно ошибку "ГОСТ хранилище не содержит подходящего сертификата", мы сосредоточимся на следующих шагах:
CKA_ID ГОСТ-сертификата присутствуют непечатные или некорректные символы. Для исправления этой проблемы существуют специализированные утилиты:
egais_fix_id.zip (или egais_fix_id.exe): Мы можем попробовать использовать эту утилиту для автоматического удаления некорректных символов. Однако следует отметить, что не всегда эта утилита полностью решает проблему, как было отмечено в одном из сообщений форума.Pkcs11Admin-x64.exe: Если egais_fix_id.exe не помог, возможно, нам потребуется более мощный инструмент, такой как Pkcs11Admin-x64.exe. Эта утилита позволяет более глубоко проверить и при необходимости удалить нерелевантные записи ключей, которые не относятся к нашим действующим сертификатам и могут мешать УТМ корректно идентифицировать нужный.transport.properties: Начиная с версии УТМ 4.2.0 (сборка 2539), появилась возможность работы с несколькими сертификатами КЭП на одном носителе. Если УТМ выбирает не тот ГОСТ-сертификат, который нам нужен, мы можем явно указать его серийный номер в файле конфигурации.
C:\UTM\transporter\conf\transport.properties.crypto.lib.gost.serialNumber.Пример записи:
crypto.lib.gost.serialNumber=0123456789ABCDEF
Если этот параметр не указан, УТМ по умолчанию выбирает последний записанный на носитель ГОСТ-сертификат, что не всегда корректно.
Помимо проблем с сертификатами, сбой службы Transport может быть вызван конфликтами в операционной системе или некорректной работой другого программного обеспечения.
netstat -a
Мы внимательно изучаем вывод команды на предмет использования порта 8080. Если порт занят, мы увидим строку с :8080 и статусом LISTENING, а также PID (идентификатор процесса) приложения, которое его занимает. В одном из сообщений пользователи форума проверяли порт 8080 и обнаружили, что он не занят, что исключает эту причину, но в вашем случае это может быть актуально.
C:\UTM\transporter\conf\transport.properties и находим параметр server.port (или port, в зависимости от версии УТМ). Мы изменяем его значение на другой свободный порт, например, 8081.
Пример:
server.port=8081
После изменения порта мы перезапускаем службу УТМ.
C:\UTM) и его исполняемые файлы (например, transport.exe, updater.exe) в список исключений нашего защитного ПО. Также нам может понадобиться разрешить входящие и исходящие соединения для порта 8080 (или того, на который мы его изменили).Если после всех диагностических шагов и попыток исправления проблема остается, или если мы видим, что проблема явно не в сертификатах (например, лог не указывает на ошибку ГОСТ хранилища), нам следует рассмотреть переустановку УТМ. Многие пользователи сообщают, что именно переустановка УТМ (иногда в сочетании с очисткой ключей) в итоге решает проблему.
transportDB, которая по умолчанию находится в C:\UTM\transporter\. Мы просто копируем эту папку в безопасное место. Это позволит нам восстановить все данные (например, незавершенные запросы, квитанции) в случае непредвиденных проблем.transportDB в C:\UTM\transporter\ на нашу резервную копию.http://localhost:8080/ (или другому порту, если мы его меняли). На этой странице мы можем увидеть статус УТМ и убедиться, что он работает без ошибок, таких как "Ошибка ключа доступа в УТМ".В одном из сообщений на форуме, где автор столкнулся с проблемой "ГОСТ хранилище не содержит подходящего сертификата", именно переустановка УТМ и очистка от лишних ключей (как это было предложено в сообщении 2) оказалась решающей. Это подчеркивает, что иногда комплексный подход, включающий как очистку, так и переустановку, является наиболее эффективным.
Проблема с остановкой службы UTM transport может быть вызвана разнообразными факторами. Мы начали с анализа системных журналов и лог-файлов УТМ, которые часто указывают на конкретную причину, такую как некорректный сертификат. Затем мы рассмотрели методы устранения проблем с Rutoken и сертификатами, включая очистку ключей, использование утилит для исправления CKA_ID и обновление драйверов. Не забыли мы и о системных причинах, таких как конфликты портов и влияние антивирусного ПО. Если все эти шаги не принесли результата, полноценная переустановка УТМ с предварительным резервным копированием базы данных часто оказывается последним и самым действенным решением. Важно действовать методично, проверяя каждый шаг и анализируя изменения в работе системы.