Войти

Типовые ошибки Агента СМЭВ4

Ошибки, связанные с ИС участника, её сертификатом и контейнером ключей

1.  В конфигурационном файле Агента в мнемонике ИС допущена ошибка:

 Типовые_ошибки_Агента_1.jpg

Рисунок 1 - Результат выполнения тестового запроса Select 1.

Ошибка: "Invalid Client Credentials".

В логе присутствует фраза "Invalid Client Credentials", которая означает наличие проблем с ИС участника и также свидетельствует о том, что есть проблемы с подключением. Необходимо убедиться, что ИС участника присвоена роль в СМЭВ 4 в ЛК УВ.

Примечание: стоит обратить внимание на то, что в файле application.yml мнемоника Агента СМЭВ 4 (ПОДД) должна соответствовать мнемонике ИС из ЛК УВ. Если она начинается с 0, то её необходимо обособить одинарными кавычками ' '. Также необходимо учитывать регистр (например: «agentMnemonic» и «agentmnemonic» - две различные мнемоники).

2.  В названии контейнера ключей в конфигурационном файле допущена ошибка. В логе просматривается следующая строчка:

      "Ошибка вызова функции acquireContext: 0x80090016"

или фраза:

      "Не удалось получить закрытый ключ {alias}"

Данные ошибки означают невозможность получения ключа по причине отсутствия доступа.

Решение:

Убедиться, что в конфигурационном файле application.yml в названии alias (контейнера ключей) не допущено ошибок. Далее следует убедиться, что в директории keys создана директория с именем пользователя /var/opt/cprocsp/keys/{{user}}. Если такой директории нет, то необходимо создать её и разместить в ней контейнер с ключами (контейнер с ключами выдаётся удостоверяющим центром вместе с сертификатом).

Примечание: если в названии alias присутствуют пробелы, то в конфигурационном файле Агента его следует обособить одинарными кавычками ' '.

Также стоит убедиться, что в блоке data-center конфигурационного файла прописана настройка signature: keystoreType: "JNI_CSP".

3.  В конфигурационном файле Агента в пароле от контейнера ключей допущена ошибка. В логе Агента прослеживаются следующие фразы:

      <p class="error-message">A client has not presented the required certificate</p>        </div>    </div>    <p style="visibility: hidden; height: 0;">No required SSL certificate was           sent</p> </body> </html> : 1edd83da-7d0a-65c7-8e0c-a1b3963bf0d3"

или следующий текст ошибки:

      "Ошибка вызова функции getUserKey: 0x80090022"

А при попытке направить тестовый запрос всплывает следующая ошибка: 

Типовые_ошибки_Агента_2.jpg

Рисунок 2 - Результат выполнения тестового запроса Select 1.

Ошибка: "No required SSL certificate was sent".

Для начала необходимо проверить, что используется верный пароль.

Далее проверить наличие цепочки сертификатов закрытого ключа (проверить наличие цепочки в ОС Windows и в ОС Linux).

Если оба пункта выполнены, но ошибка сохраняется, то необходимо убедиться, что сертификат добавлен в ngate (сертификат удостоверяющего центра должен быть добавлен в ядро ПОДД).

Также данная ошибка может быть вызвана из-за того, что указан серверный ключ (ExtendedKeyUsage = serverAuth). Для аутентификации требуется клиентский ключ. Для того чтобы проверить это - необходимо выполнить команду keytool. (команда указана в статье Особенности регистрации сертификата в СМЭВ 4).

При проверке сертификата необходимо обратить внимание на параметр ExtendedKeyUsage он должен быть клиентским (ExtendedKeyUsage = clientAuth).

Типовые_ошибки_Агента_3.jpg

Рисунок 3 - Результат проверки сертификата.

4.  Не стартует сервис, а в лог падает ошибка:

     "Ошибка вызова функции getKeyParam: 0x8010002С

или присутствует фраза:

      “SignatureExeption: Срок действия закрытого ключа истек. Срок действия закрытого ключа не может превышать 1 год 3 месяца

Проверить срок действия сертификата ИС (проверять необходимо в карточке ИС в ЛК УВ). Если он действующий, то нужно убедиться, что в контейнер добавлен нужный сертификат, и есть привязка к закрытому ключу.

Примечание: с помощью тестового запроса “SELECT 1”, можно проверить соединение Агента с Ядром ПОДД. Для того, чтобы отправить тестовый запрос - воспользуйтесь командой с использованием утилиты curl:

 curl -X POST -H "Accept-Version:1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}' http://<имя_хоста>:8192/query --silent -m 30

5.  В логе присутствуют сообщения "Client authentication with signed JWT failed: Certificate provided in request not matched to any allowed public keys"

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


Ошибки, связанные с хранилищем ключей cp_ca_store

1. В конфигурационном файле Агента изменен путь к хранилищу сертификатов cp_ca_store:

Типовые_ошибки_Агента_4.jpg

Рисунок 4 - Результат выполнения тестового запроса Select 1.

Ошибка в неправильно указанном пути до хранилища ключей.

Убедиться, что путь до файла-хранилища сертификатов прописан корректно. Также удостовериться в том, что он действительно там есть. Скачать cp_ca_store можно из раздела Документы СМЭВ 4 (ПОДД) на портале ЕСКС, блок Для внедрения - Образцы файлов конфигурирования агента.

2. В логе присутствуют сообщения вида:

    "unable to find valid certification path to requested target".

Убедитесь, что файл cp_ca_store содержит нужную цепочку сертификатов.

3. В конфигурационном файле Агента допущена ошибка в пароле от хранилища сертификатов cp_ca_store:

    "Ошибка при передаче SQL запроса в ядро : IOException: Key store was tampered with, or password was incorrect."

Типовые_ошибки_Агента_5.jpg

Рисунок 5 - Результат выполнения тестового запроса Select 1.

Ошибка в пароле от хранилища сертификатов. Необходимо его актуализировать.

Ошибки, связанные с подключением

1.  Неверно указан адрес для подключения к ПОДД. В таком случае, в логе Агента будет прослеживаться следующая запись:

     "Отсутствуют активные подключения: [PulsarClient(pulsar://10.86.28.170:6650)]"

Проверить адреса/порты для обращения к ПОДД, а также коннект по ним. Подключение к тестовой и продуктивной среде СМЭВ 4 (ПОДД) осуществляется по следующим адресам:

Тест

      pulsar://podd.test.gosuslugi.ru:6650 podd.test.gosuslugi.ru - 109.207.9.87

Примечание: проверить коннект до адреса по порту можно командой telnet:

      telnet 109.207.9.87 6650

Продуктивный контур

При доступе до одного ЦОД: pulsar://172.20.65.5:6650

При доступе до двух ЦОД:

Для NODE1 pulsar://109.207.15.27:6650 pulsar://109.207.15.59:6650

Для NODE2 pulsar://109.207.15.155:6650 pulsar://109.207.15.187:6650

Примечание: более подробно о адресах подключения к ПОДД можно найти в Регламенте подключения к СМЭВ 4, расположенном на портале ЕСКС в разделе Документы СМЭВ 4 (ПОДД).

2.  В доменном имени при обращении к keycloak-oauth допущена ошибка. В логе Агента появляются следующие фразы:

    "Непредвиденная ошибка отправки сведений об агенте в ядро", Не удалось отправить сообщение ни в один из ЦОД, Не удалось создать потребителя Pulsar                       serviceUrl=pulsar://podd.test.gosuslugi.ru:6650, PulsarClientException: Connection already closed.

А при выполнении тестового запроса всплывает следующая ошибка:

Типовые_ошибки_Агента_6.jpg

Рисунок 6 - Результат выполнения тестового запроса Select 1.

Ошибка в доменном имени адреса в "auth-server-url".

Проверить правильность написания доменного имени раздела keycloak-oauth конфигурационного файла Агента СМЭВ 4 (ПОДД).

Для тестовой среды: https://podd.test.gosuslugi.ru/auth

Для продуктивной среды: https://podd.gosuslugi.ru:443/auth

3. При попытке направить тестовый запрос во всплывающем сообщении об ошибке присутствует фраза: "connection refused"

Пример:

{"@timestamp":"2022-12-13T09:46:53.849Z","level":"WARN","thread":"pulsar-client-io-1-1","logger":"org.apache.pulsar.client.impl.ConnectionPool","message":"Failed to open connection to podd.test.gosuslugi.ru/<unresolved>:6650 : org.apache.pulsar.shade.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: podd.test.gosuslugi.ru/172.26.155.209:6650","context":"default"}

Проверить связанность с необходимыми адресами для подключения к тестовой и продуктивной среде командой telnet. Если соединение отсутствует, необходимо получить доступ. Подробнее с доступами можно ознакомиться в Регламенте подключения к СМЭВ 4 (п.1.2 «Настройка сетевого взаимодействия с тестовой и продуктивной средами ПОДД СМЭВ»), размещённом на портале ЕСКС в разделе Документы СМЭВ 4. Также необходимо проверить, чтобы адрес подключения к СМЭВ 4 (ПОДД) был прописан в /etc/hosts (актуально для Агента без docker).

Ошибки, связанные с подключением к Витрине данных

Ошибки в логе Агента-потребителя:

1.  Неверно указан адреса kafka в конфигурационном файле Агента-Поставщика

 {"@timestamp":"2023-04-11T08:58:53.922Z","level":"ERROR","thread":"NODE1-gw-consumer-3","logger":"ru.rtlabs.transport.messaging.consumer.ConsumerFlowVerticle","message":"Ошибка при обработке сообщения "Сообщение из Ядра NODE1"","context":"default","exception":"java.lang.RuntimeException: Ошибка при обработке сообщения из ядра типа "MetadataDistributionKey:0.1" at ru.rtlabs.transport.agent.gateway.CoreToAgentGatewayReceiver.handle(CoreToAgentGatewayReceiver.kt:30) at ru.rtlabs.transport.agent.gateway.CoreToAgentGatewayReceiver$handle$1.invokeSuspend(CoreToAgentGatewayReceiver.kt) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:233) …

Решение: Адрес в поле kafka-bootstrap-servers должен соответствовать адресу, на котором развернут Kafka.

2.  Неверно указана мнемоника витрины в конфигурационном файле Агента-Поставщика

 {"@timestamp":"2023-04-11T08:58:52.276Z","level":"ERROR","thread":"NODE1-gw-consumer-3","logger":"ru.rtlabs.transport.agent.gateway.BaseGatewayReceivingHandler","message":"Ошибка при обработке сообщения "Метаданные витрин" из ядра","context":"default","exception":"java.lang.RuntimeException: Ошибка при обработке сообщения из ядра типа "MetadataDistributionKey:0.1" at ru.rtlabs.transport.agent.gateway.CoreToAgentGatewayReceiver.handle(CoreToAgentGatewayReceiver.kt:30) at ru.rtlabs.transport.agent.gateway.CoreToAgentGatewayReceiver$handle$1.invokeSuspend(CoreToAgentGatewayReceiver.kt) …

А при попытке направить запрос в Витрину данных в тексте с ошибкой присутствует фраза:

    "Витрина не зарегистрирована"

Типовые_ошибки_Агента_7.jpg

Рисунок 7 - Результат выполнения запроса в Витрину данных.

Решение:

Исправить мнемонику витрины, обратить внимание, что указывается она в нижнем регистре.

Примечание: ошибки в случае неверного указания адреса kafka и мнемоники витрины для Потребителя выглядят так же.

Прочие ошибки, связанные с неверно заполненным конфигурационным файлом Агента application.yaml

1.  Допущена ошибка в мнемонике ядра. В логе прослеживается следующая фраза:

     "admin data due to Property does not exist"

А при попытке направить тестовый запрос всплывают следующие сообщения об ошибках:

Типовые_ошибки_Агента_8.jpg

Рисунок 8 - Результат выполнения тестового запроса Select 1.

Ошибка в написании мнемоники ядра.

Ошибка, связанная с правами на директорию

Может наблюдаться остановка контейнера через несколько секунд после запуска, с сообщением в логе:

     “Ошибка вызова функции acquireContext: 0x8009001a

В этом случае необходимо сделать пользователя {{user}} владельцем директории /var/opt/cprocsp/keys/{{user}}.

Если же Агент был развёрнут через doker-образ, то следует изменить владельца каталога keys и вложенных подкаталогов и файлов на пользователя с id=1000:

 chown -R 1000 keys

после чего повторить выполнение скрипта запуска контейнера.

Ошибка, связанная с конфликтом одновременно запущенных Агентов

При выполнении запроса всплывает сообщение с фразой: "Получен сигнал завершения работы агента":

 {"@timestamp":"2022-11-17T13:15:07.682Z","level":"INFO","thread":"NODE1-gw-consumer-2","logger":"ru.rtlabs.einfahrt.agent.info.InstanceInfo","message":"Получен сигнал завершения работы агента","context":"default","mdc":{"requestId":"7f5e9f7b-bf98-4219-89ea-f1a72ac5693c"},"tags":["PODD-einfahrt-0146"]}

Необходимо проверить, не запущен ли ещё один Агент, настроенный на ту же мнемонику ИС, на другой машине.

Ошибки, связанные с отсутствием лицензии КриптоПро

При попытке направить запрос он не проходит, и в логе агента появляются сообщения:

    “java.lang.IllegalStateException: Ошибка вызова функции signHash: 0x65b

Типовые_ошибки_Агента_9.jpg

Рисунок 9 - Ошибка вызова функции signHash: 0x65b“

при попытке направить тестовый запрос.

Или присутствует фраза:

    "LicenseExeption: License has expired"

Используемая trial лицензия CryptoPro истекла. Необходимо приобрести лицензии на CryptoPro CSP и JCSP и внести информацию о них в систему, как описано руководстве пользователя по разворачиванию Агента.

После того, как учтутся все необходимые изменения, для корректной работы Агента СМЭВ4 необходимо произвести рестарт.

Прочие ошибки

1.  В логе присутствуют сообщения "No such provider: JCP"

Убедитесь, что CryptoPro JCSP и CryptoPro CSP установлены корректно (согласно руководства администратора Агента ПОДД), а также путь к jar файлам СryptoPro JCSP присутствует в classpath при запуске java.

2.  Ошибка, связанная с рассинхронизацией по времени (опережение по времени, относительно keycloak)

При попытке направить запрос возникает ошибка с расхождением по времени "Client authentication with signed JWT filed: JWT is not active: [ … ]".

Типовые_ошибки_Агента_10.jpg

Рисунок 10 - Ошибка с рассинхронизацией по времени относительно keycloak

при попытке направить запрос.

На Агенте необходимо синхронизировать время (как минимум выставить верное).

Примечание: без включения синхронизации время может снова разбежаться.

Авторизуйтесь, чтобы оставить комментарий к статье