Это старая версия документа!
Первым шагом в процессе устранения ошибок является понимание того, откуда возникло сообщение об ошибке. Поэтому важно знать, какие компоненты участвуют в потоке сообщений:
Сообщения об ошибках могут генерироваться Серверами безопасности (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 | 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? |