Инструменты пользователя

Инструменты сайта


how_to_read_proxy_errors
Целевой аудиторией данного руководства являются системные администраторы Сервера безопасности Тундук ответственные за установку и сопровождение программного обеспечения X-Road. Документ предназначен для читателей с умеренными знаниями администрирования Linux серверов и компьютерных сетей. Также необходимым умением является - умение читать лог файлы в директории /var/log/xroad. Основные логи для чтения - proxy.log и signer.log

О сообщениях об ошибках прокси-сервера Security Server

Первым шагом в процессе устранения ошибок является понимание того, откуда возникло сообщение об ошибке. Поэтому важно знать, какие компоненты участвуют в потоке сообщений:

  1. Потребитель услуг
  2. Сервер безопасности на стороне потребителя (клиентский прокси)
  3. Сервер безопасности на стороне провайдера (прокси-сервер)
  4. Поставщик услуг.

Сообщения об ошибках могут генерироваться Серверами безопасности (2, 3) или информационной системой поставщика услуг (4). Сообщения об ошибках, генерируемые Security Server, имеют фиксированную структуру, зависящую от интерфейса (SOAP/REST). Однако сообщения об ошибках SOAP и REST содержат одну и ту же информацию независимо от интерфейса обмена сообщениями. Сообщения об ошибках, генерируемые Security Server, содержат три поля:

тип (REST)/код ошибки (SOAP)

  • Код ошибки, указывающий, откуда возникла ошибка — клиентский прокси (2) или серверный прокси (3) — и тип ошибки.
  • Ошибки, начинающиеся с «Server.ClientProxy», возникают в прокси-сервере клиента на стороне потребителя (2). В этом случае более подробную информацию можно найти в журнале прокси-сервера Security Server (2) на стороне потребителя (/var/log/xroad/proxy.log).
  • Ошибки, начинающиеся с «Server.ServerProxy», возникают в прокси-сервере на стороне провайдера (3). В этом случае более подробную информацию можно найти в журнале прокси-сервера Security Server (3) на стороне провайдера (/var/log/xroad/proxy.log).

message (REST)/faultString (SOAP)

  • Более подробное описание ошибки.

detail (REST)/faultDetail (SOAP)

  • Уникальный идентификатор, который можно использовать для поиска дополнительной информации в журнале прокси-приложений (/var/log/xroad/proxy.log).

Например, сообщение об ошибке, сгенерированное прокси-сервером клиента на Security Server (2) на стороне потребителя:

REST/JSON Error Message

{
   "type":"Server.ClientProxy.SslAuthenticationFailed",
   "message":"Client (SUBSYSTEM:PLAYGROUND/COM/1234567-8/TestClient) specifies HTTPS but did not supply TLS certificate",
   "detail":"2ea02d93-e0b8-4e2b-8c6e-fac20f53a3e3"
}

REST/XML Error Message

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<error>
    <type>Server.ClientProxy.SslAuthenticationFailed</type>
    <message>Client (SUBSYSTEM:PLAYGROUND/COM/1234567-8/TestClient) specifies HTTPS but did not supply TLS certificate</message>
    <detail>2ea02d93-e0b8-4e2b-8c6e-fac20f53a3e3</detail>
</error>

SOAP Error Message

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>Server.ClientProxy.SslAuthenticationFailed</faultcode>
         <faultstring>Client (SUBSYSTEM:PLAYGROUND/COM/1234567-8/TestClient) specifies HTTPS but did not supply TLS certificate</faultstring>
         <faultactor />
         <detail>
            <faultDetail>b782c3a4-f279-43d1-8684-2af318ec2ca5</faultDetail>
         </detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Также могут возникать ошибки в информационной системе поставщика услуг (4). В этом случае поставщик услуг (4) может вернуть любое пользовательское сообщение об ошибке, если оно соответствует протоколу сообщений X-Road. В случае, если сообщение об ошибке возвращается и не соответствует структуре, представленной выше, ошибка была сгенерирована информационной системой поставщика услуг (4).

Сервер безопасности на стороне потребителя (2)

В таблице ниже приведены наиболее распространенные сообщения об ошибках, исходящие от Security Server (2) на стороне потребителя, и их описания.

Обратите внимание, что это не исчерпывающий список всех ошибок, генерируемых прокси-сервером Security Server.
Код ошибки (тип/код ошибки)Сообщение об ошибке (message/faultString) Описание
Server.ClientProxy.UnknownMember Запрос содержит недопустимый идентификатор клиента или службы.
Client 'SUBSYSTEM:instanceIdentifier/memberClass/memberCode/subsystemCode' not foundВ случае, если клиент не найден, клиент, указанный в запросе, не зарегистрирован на Сервере безопасности на стороне потребителя (2). Подробнее о регистрации клиентов можно узнать тут Регистрация клиента сервера безопасности
Could not find addresses for service provider 'SERVICE:instanceIdentifier/memberClass/memberCode/subsystemCode/serviceCode' В случае, если адреса для поставщика услуг не найдены, в идентификаторе услуги есть ошибка. Убедитесь, что значение идентификатора услуги в запросе верное и соответствует информации, зарегистрированной на Сервере безопасности поставщика услуги (3).
Server.ClientProxy.NetworkError
Could not connect to any target host https://TARGET_HOST:5500Сервер безопасности на стороне потребителя (2) не может установить сетевое соединение с сервером безопасности на стороне поставщика (3). Проблема обычно вызвана неправильными настройками брандмауэра. На стороне потребителя Security Server (2) должен быть разрешен исходящий трафик на порты 5500 и 5577 Security Server (3) на стороне провайдера. На стороне провайдера Security Server (3) должен быть разрешен входящий трафик на порты 5500 и 5577 от Security Server (2) на стороне потребителя. Дополнительную информацию о необходимых конфигурациях брандмауэра можно найти в руководствах по установке Security Server для Ubuntu - https://github.com/nordic-institute/X-Road/blob/develop/doc/Manuals/ig-ss_x-road_v6_security_server_installation_guide.md#221-network-diagram.
Name or service not known. No address associated with hostname. Поиск DNS на стороне провайдера Security Server (3) завершается ошибкой, так как сервер зарегистрирован с неправильным общедоступным полным доменным именем. Свяжитесь с администратором Security Server на стороне провайдера (3).
Server.ClientProxy.CannotCreateSignature.Signer.TokenNotActive Token 'softToken' неактивен Решение проблемы
Server.ClientProxy.ServiceFailed.InternalError Причина ошибки, например: Invalid instance identifier: instanceIdentifier Обработка запроса не удалась из-за внутренней ошибки на сервере Security Server (2) на стороне потребителя. Подробности смотрите в журнале приложений прокси (2) (/var/log/xroad/proxy.log). Если требуется более подробное ведение журнала, настройте прокси (2) Как изменить уровень логирования на Security Server
Server.ClientProxy.SslAuthenticationFailed
Security server has no valid authentication certificate Сервер безопасности на стороне потребителя (2) не имеет действительного сертификата проверки подлинности. Сертификат проверки подлинности может не существовать, он может быть отключен, может быть не зарегистрирован или не иметь действительного статуса OCSP. Чтобы устранить проблему, попробуйте выполнить следующие действия: 1. Убедитесь, что сертификат аутентификации импортирован на Security Server (2). 2. Убедитесь, что сертификат активен. 3. Убедитесь, что сертификат зарегистрирован. 4. Если статус OCSP сертификата аутентификации не находится в «GOOD» состоянии, сервер безопасности (2) не может использовать сертификат. Статус OCSP можно проверить в представлении «Keys and certificates» Security Server (2). 5. Убедитесь, что программный токен, содержащий сертификат проверки подлинности, доступен и выполнен вход в систему. Состояние токена можно проверить в представлении «Ключи и сертификаты» на сервере безопасности (2). Как ввести Security Server PIN code?
Service provider did not send correct authentication certificate Сервер безопасности на стороне провайдера (3) не имеет действительного сертификата проверки подлинности. Сертификат проверки подлинности может не существовать, он может быть отключен, может быть не зарегистрирован или не иметь действительного статуса OCSP. Чтобы устранить проблему, попробуйте выполнить следующие действия: 1. Убедитесь, что сертификат аутентификации импортирован на Security Server (2). 2. Убедитесь, что сертификат активен. 3. Убедитесь, что сертификат зарегистрирован. 4. Если статус OCSP сертификата аутентификации не находится в «GOOD» состоянии, сервер безопасности (2) не может использовать сертификат. Статус OCSP можно проверить в представлении «Keys and certificates» Security Server (2). 5. Убедитесь, что программный токен, содержащий сертификат проверки подлинности, доступен и выполнен вход в систему. Состояние токена можно проверить в представлении «Ключи и сертификаты» на сервере безопасности (2). Как ввести Security Server PIN code? Кроме того, сертификат проверки подлинности, возвращенный Security Server (3) на стороне провайдера, не совпадает с сертификатом проверки подлинности, который был зарегистрирован на этом сервере Security Server в глобальной конфигурации. Это может произойти, когда Security Server (3) на стороне провайдера использует внешний балансировщик нагрузки, который не настроен для использования сквозного SSL.
Client (SUBSYSTEM:instanceIdentifier/memberClass/memberCode/subsystemCode) specifies HTTPS but did not supply TLS certificate Клиент указывает HTTPS, но не предоставил сертификат TLS
Client (SUBSYSTEM:instanceIdentifier/memberClass/memberCode/subsystemCode) specifies HTTPS NO AUTH but client made plaintext connection Тип подключения клиентской подсистемы, используемой потребителем службы (1), установлен на HTTPS NO AUTH на сервере Security Server (2) на стороне потребителя, но потребитель службы (1) попытался установить соединение по протоколу http. Тип соединения HTTPS NO AUTH принудительно использует https, но клиентский TLS-сертификат не проверяется Security Server (2). Другими словами, https используется без взаимной аутентификации TLS (mTLS).
Server.ClientProxy.IOError Could not find any certificates for member SUBSYSTEM:instanceIdentifier/memberClass/memberCode/subsystemCode. Are you sure tokens containing the certifications are logged in? Участник, владеющий подсистемой, используемой в качестве клиента запроса, не имеет действительного сертификата подписи на сервере Security Server (2) на стороне потребителя. Сертификат подписи может не существовать, он может быть отключен или не иметь действительного статуса OCSP. Чтобы устранить проблему, попробуйте выполнить следующие действия: 1.Убедитесь, что сертификат подписи импортирован на Security Server (2). 2.Убедитесь, что сертификат активен. 3. Если статус OCSP сертификата подписи не находится в «хорошем» состоянии, сервер безопасности (2) не может использовать сертификат. Статус OCSP можно проверить в представлении «Ключи и сертификаты» Security Server (2). 4. Убедитесь, что токен, содержащий сертификат подписи, доступен и выполнен вход в систему. Состояние токена можно проверить в представлении «Ключи и сертификаты» на сервере безопасности (2).
Server.ClientProxy.LoggingFailed.TimestamperFailed
Cannot time-stamp messages: no timestamping services configured Присвоение временных меток записям журнала сообщений завершилось неудачно, так как служба временных меток не была настроена на сервере Security Server (2) на стороне потребителя. 3.4 Настройка службы времени
Cannot time-stamp messages Отметка времени записей журнала сообщений может завершиться ошибкой по нескольким причинам: 1. сервер Security Server (2) на стороне потребителя не может установить сетевое соединение со службой временных меток, например, из-за неверных настроек брандмауэра. (проверьте через telnet tsp.srs.kg 62302. 2. служба отметки времени в настоящее время недоступна. Подробности смотрите в журнале приложений прокси (2) (/var/log/xroad/proxy.log). Если требуется более подробное ведение журнала, настройте прокси (2) - Как изменить уровень логирования на Security Server
Server.ClientProxy.OutdatedGlobalConf Global configuration is expired Security Server (2) на стороне потребителя не может загрузить глобальную конфигурацию с центрального сервера, а срок действия локальной копии глобальной конфигурации истек. Подробности смотрите в журнале приложения клиента конфигурации (2) (/var/log/xroad/configuration_client.log). Если требуется более подробное ведение журнала, настройте клиент конфигурации (2) - Как изменить уровень логирования на Security Server. Вы также можете попробовать перезапустить процесс «xroad-confclient».
$ systemctl restart xroad-confclient

Кроме того, возможно, что Security Server (2) на стороне потребителя не может установить сетевое подключение к центральному серверу, например, из-за неверных настроек брандмауэра -

telnet central-server.tunduk.gov.kg 80
Server.ClientProxy.LoggingFailed.InternalError Запись сообщений в базу данных журнала сообщений завершается ошибкой на сервере Security Server (2) на стороне потребителя.
Ask timed out on Actor akka Proxy user LogManager # 2110275378 ]] after [40000 ms]. Sender [null] sent message of type «ee.ria.xroad.common.messagelog.LogMessage» Это может произойти из-за перегрузки Security Server (2) или переполнения жесткого диска. Проверьте загрузку процессора и свободное место на диске сервера (2). Перезапуск сервера также может помочь.
Futures timed out after [40 seconds] Это может произойти из-за того, что Security Server (2) перегружен. Проверьте загрузку процессора сервера (2). Перезапуск сервера (2) также может помочь.

Сервер безопасности на стороне провайдера (3)

В таблице ниже приведены наиболее распространенные сообщения об ошибках, исходящие от Security Server (2) на стороне потребителя, и их описания.

Обратите внимание, что это не исчерпывающий список всех ошибок, генерируемых прокси-сервером Security Server.
Код ошибки (тип/код ошибки)Сообщение об ошибке (message/faultString) Описание
Server.ServerProxy.AccessDenied Request is not allowed: SERVICE:instanceIdentifier/memberClass/memberCode/subsystemCode/serviceCode Предоставление доступа другому участнику 7.2.2
Server.ServerProxy.ServiceFailed.MissingHeaderField Malformed SOAP message: header missing В ответном сообщении, возвращаемом информационной системой поставщика услуг (4), отсутствует один или несколько обязательных заголовков SOAP. Сообщения запроса и ответа SOAP должны содержать определенные заголовки X-Road.
Server.ServerProxy.ServiceFailed.InvalidSoap Cause of the error, for example: org.xml.sax.SAXParseException; Premature end of file. Информационная система поставщика услуг (4) вернула искаженное сообщение SOAP в качестве ответа. В этом случае более подробную информацию можно найти в журнале прокси-сервера Security Server (3) на стороне потребителя (/var/log/xroad/proxy.log). Если требуется более подробное ведение журнала, настройте прокси (3) - Как изменить уровень логирования на Security Server
Server.ServerProxy.UnknownService Unknown service: SERVICE:instanceIdentifier/memberClass/memberCode/subsystemCode/serviceCode Служба, идентифицированная кодом службы, включенным в запрос, не существует на сервере безопасности поставщика услуг (3). Пожалуйста, убедитесь, что значение кода услуги в запросе правильное и соответствует информации, зарегистрированной на сервере безопасности поставщика услуг (3).
Server.ServerProxy.ServiceFailed.HttpError Cause of the error, for example: Server responded with error 301: Moved Permanently Security Server (3) на стороне поставщика услуг не смог успешно подключиться к информационной системе поставщика услуг (4). В этом случае более подробную информацию можно найти в журнале прокси-сервера Security Server (3) на стороне потребителя (/var/log/xroad/proxy.log). Если требуется более подробное ведение журнала, настройте прокси (3) - Как изменить уровень логирования на Security Server
Server.ServerProxy.ServiceFailed.InternalError Обработка запроса не удалась из-за внутренней ошибки на сервере Security Server (3) на стороне провайдера.
Signer.UnknownMember: Could not find any certificates for member'SUBSYSTEM:instanceIdentifier/memberClass/memberCode/subsystemCode'. Are you sure tokens containing the certifications are logged in? Сервер безопасности на стороне провайдера (3) не имеет действительного сертификата проверки подлинности. Сертификат проверки подлинности может не существовать, он может быть отключен, может быть не зарегистрирован или не иметь действительного статуса OCSP. Чтобы устранить проблему, попробуйте выполнить следующие действия: 1. Убедитесь, что сертификат аутентификации импортирован на Security Server (3). 2. Убедитесь, что сертификат активен. 3. Убедитесь, что сертификат зарегистрирован. 4. Если статус OCSP сертификата аутентификации не находится в «GOOD» состоянии, сервер безопасности (3) не может использовать сертификат. Статус OCSP можно проверить в представлении «Keys and certificates» Security Server (3). 5. Убедитесь, что программный токен, содержащий сертификат проверки подлинности, доступен и выполнен вход в систему. Состояние токена можно проверить в представлении «Ключи и сертификаты» на сервере безопасности (3). Как ввести Security Server PIN code?
Connection pool shut down Security Server (3) на стороне провайдера не может получить доступ к своей базе данных. Подробности смотрите в журнале приложений прокси (3) (/var/log/xroad/proxy.log) и в журнале Postgres (/var/log/postgresql/). Если требуется более подробное ведение журнала, настройте прокси (3) - Как изменить уровень логирования на Security Server
Server.ServerProxy.ServiceFailed.CannotCreateSignature Failed to get signing info for member HttpError: Connection to Signer (port 5558) timed out Возникла проблема с подписывающей стороной на Security Server (3) на стороне провайдера. Подробности смотрите в журнале приложения подписывающей стороны (3) (/var/log/xroad/signer.log). Если требуется более подробное ведение журнала, настройте прокси (3) - Как изменить уровень логирования на Security Server. Также можно попробовать перезагрузить xroad-signer
$ systemctl restart xroad-signer
Server.ServerProxy.CannotCreateSignature.Signer.TokenNotActive Token 'softToken' not active Запрос на обслуживание возвращает сообщение об ошибке "Token softToken Not Active"
Server.ServerProxy.SslAuthenticationFailed Server certificate is not trusted Аутентификация SSL между Security Server (3) на стороне поставщика услуг и информационной системой поставщика услуг (4) не удалась. Ошибка возникает, когда в конфигурации службы выбран параметр «Проверить сертификат TLS», но сертификат службы не был загружен на сервер безопасности на стороне провайдера (3). Ошибку можно устранить, сняв флажок «Проверить сертификат TLS» или загрузив сертификат службы на сервер безопасности на стороне провайдера (3).
Server.ServerProxy.LoggingFailed.TimestamperFailed
Cannot time-stamp messages: no timestamping services configured Присвоение временных меток записям журнала сообщений завершилось неудачей, так как служба временных меток не была настроена на сервере Security Server (3) на стороне поставщика услуг. 3.4 Настройка службы времени
Cannot time-stamp messages Отметка времени записей журнала сообщений может завершиться ошибкой по нескольким причинам: 1. сервер Security Server (3) на стороне провайдера не может установить сетевое соединение со службой временных меток, например, из-за неверных настроек брандмауэра. (проверьте через
telnet tsp.srs.kg 62302

. 2. служба отметки времени в настоящее время недоступна. Подробности смотрите в журнале приложений прокси (2) (/var/log/xroad/proxy.log). Если требуется более подробное ведение журнала, настройте прокси (2) - Как изменить уровень логирования на Security Server

Server.ServerProxy.OutdatedGlobalConf Global configuration is expired Global configuration is expired Security Server (3) на стороне провайдера не может загрузить глобальную конфигурацию с центрального сервера, а срок действия локальной копии глобальной конфигурации истек. Подробности смотрите в журнале приложения клиента конфигурации (3) (/var/log/xroad/configuration_client.log). Если требуется более подробное ведение журнала, настройте клиент конфигурации (3) - Как изменить уровень логирования на Security Server. Вы также можете попробовать перезапустить процесс «xroad-confclient».
$ systemctl restart xroad-confclient

Кроме того, возможно, что Security Server (3) на стороне провайдера не может установить сетевое подключение к центральному серверу, например, из-за неверных настроек брандмауэра -

telnet central-server.tunduk.gov.kg 80
Server.ClientProxy.LoggingFailed.InternalError Запись сообщений в базу данных журнала сообщений завершается ошибкой на сервере Security Server (3) на стороне провайдера.
Ask timed out on Actor akka Proxy user LogManager # 2110275378 ]] after [40000 ms]. Sender [null] sent message of type «ee.ria.xroad.common.messagelog.LogMessage» Это может произойти из-за перегрузки Security Server (3) или переполнения жесткого диска. Проверьте загрузку процессора и свободное место на диске сервера (3). Перезапуск сервера также может помочь.
Futures timed out after [40 seconds] Это может произойти из-за того, что Security Server (3) перегружен. Проверьте загрузку процессора сервера (3). Перезапуск сервера (3) также может помочь.

Автор Даниил Горбенко

how_to_read_proxy_errors.txt · Последние изменения: 2023/08/18 05:50 — infra