Это старая версия документа!
Первым шагом в процессе устранения ошибок является понимание того, откуда возникло сообщение об ошибке. Поэтому важно знать, какие компоненты участвуют в потоке сообщений:
Сообщения об ошибках могут генерироваться Серверами безопасности (2, 3) или информационной системой поставщика услуг (4). Сообщения об ошибках, генерируемые Security Server, имеют фиксированную структуру, зависящую от интерфейса (SOAP/REST). Однако сообщения об ошибках SOAP и REST содержат одну и ту же информацию независимо от интерфейса обмена сообщениями. Сообщения об ошибках, генерируемые Security Server, содержат три поля:
Например, сообщение об ошибке, сгенерированное прокси-сервером клиента на Security Server (2) на стороне потребителя:
{ "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" }
<?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>
<?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).
В таблице ниже приведены наиболее распространенные сообщения об ошибках, исходящие от Security Server (2) на стороне потребителя, и их описания.
Код ошибки (тип/код ошибки) | Сообщение об ошибке (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 |