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

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


how_to_read_proxy_errors

Это старая версия документа!


О сообщениях об ошибках прокси-сервера 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) на стороне потребителя. https://wiki.tunduk.kg/doku.php?id=install-security-server-new#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8| | |Cannot time-stamp messages| Отметка времени записей журнала сообщений может завершиться ошибкой по нескольким причинам: 1. сервер Security Server (2) на стороне потребителя не может установить сетевое соединение со службой временных меток, например, из-за неверных настроек брандмауэра. (проверьте через telnet tsp.srs.kg 62302 2. служба отметки времени в настоящее время недоступна. Подробности смотрите в журнале приложений прокси (2) (/var/log/xroad/proxy.log). Если требуется более подробное ведение журнала, настройте прокси (2) -** Как изменить уровень логирования на Security Server
how_to_read_proxy_errors.1684502277.txt.gz · Последние изменения: 2023/05/19 13:17 — infra