Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Общение с ГНИВЦом не помогло. Они утверждают, что ошибка на нашей стороне. Я "достал" WSDL-файл через InternetExplorer с помощью сертификата, который у нас имеется. Сохранил его на диск "C:". Теперь при инициализации SOAP-клиента, указываю не URL, а локальный путь до файла. Инициализация проходит успешно. А вот при вызове методов возникают ошибки: Soap error: Bad certificate.. Soap error: An unanticipated error occurred during the processing of this request.. Soap error: Sending the Soap message failed or no recognizable response was received. Soap error: Unspecified client error.. Судя по всему, ругается на сертификат, который я указал в качестве параметра соединения SSLClientCertificateName. Поиск в интернете показал, что причин может быть несколько: 1. Неверное имя сертификата. 2. Попробовать указать полный путь до сертификата, т.е. CURRENT_USER\My\CertName 3. Обновить WHSC30.dll до версии 3.0.1701.0 DLL-ку я так и не нашёл. Спустя 2 месяца после публикации хот фикса на сайте microsoft он пропал. Пробовал указывать полный путь до сертификата. Не помогло. Имя сертификата пишу правильно. Правда, имя состоит из русских букв. Сертификат установлен в "Личные". Закрытый ключ есть. Kirill Sobolev, можете что-нибудь подсказать? Отредактировано пользователем 12 января 2011 г. 17:32:48(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Сертификат установлен в "Личные". Закрытый ключ есть. А обращение к нему при вызове метода происходит? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Kirill Sobolev написал:А обращение к нему при вызове метода происходит? А как это можно проверить? Нашёл обновление для SOAP Toolkit 3.0 здесь.DLL'ка теперь имеет версию 3.0.3003.0 Теперь при вызове SOAP-методов в лог ничего не пишется. Но вызовы возвращают E_FAIL. Потом выставил параметр "EndPointURL" (так и не понял для чего он) равным URL до WSDL-файла. Теперь вызов SOAP-метода возвращает E_INVALIDARG и SOAP пишет: Soap error: Loading the request into SoapReader failed.. Попробовал изменить имя сертификата в параметре "SSLClientCertificateName" на несуществующее: В системный журнал ничего не пишется. А вот вызов SOAP-функции возвращает ошибку, расшифровка которой звучит так: "объект или свойство не найдено". Попробовал указать имя существующего сертификата, но не того, который должен быть: В этом случае SOAP-пишет: Soap error: Unspecified HTTP error.. Получается, что в параметре "SSLClientCertificateName" я указываю правильно имя. Отредактировано пользователем 12 января 2011 г. 20:05:59(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Я немного запутался. Сертификат, который используется для установки защищённого соединения (https) и сертификат, который я указываю в параметре SSLClientCertificateName - это один и тот же сертификат? Если это так, то тогда, возможно, моя текущая проблема вытекает из первой. И значит, у меня не тот сертификат.
Есть ли к сертификатам для SOAP какие-то конкретные требования? Например, издателем должен быть владел сервера с SOAP-сервисом и т.п.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:А как это можно проверить? Установить пароль на контейнер. Цитата:Сертификат, который используется для установки защищённого соединения (https) и сертификат, который я указываю в параметре SSLClientCertificateName - это один и тот же сертификат? Конечно Цитата:Есть ли к сертификатам для SOAP какие-то конкретные требования? Точно такие же, как и к сертификатам клиентской аутентификации. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Прочитал, что у SOAP'а не совсем корректно работает WSDLReader в случае 2-х сторонней аутентификации. Поэтому решение будет таким: С помощью WinHttpRequest буду получать WSDL-файл, сохранять его на локальном компьютере и производить инициализацию SOAP-клиента с использованием этого файла. Я уже проверил. Файл прекрасно загружается, т.к. WinHttpRequest позволяет указать конкретный сертификат, который нужно использовать для защищённого соединения. Теперь остаётся последняя проблема с вызовом методов. Немного покопавшись, нашёл у ISoapClient следующие методы: get_FaultActor() get_FaultCode() get_FaultCodeNamespace() get_FaultString() Так вот, после попытки вызова метода, они возвращают следующие значения: get_FaultActor() = NULL get_FaultCode() = "Server" get_FaultCodeNamespace() = "http://schemas.xmlsoap.org/soap/envelope/" get_FaultString() = "Cannot find child element: login" Посмотрел схему. Вроде бы, там всё в порядке. login - есть такие параметры у методов. Но дело не в них, т.к. я попробовал заменить в схеме все слова login на другое слово, а ошибка осталась та же. Сниффер показал, что при вызове SOAP-метода, до отправки запроса серверу дело не доходит. А значит ошибка локальная. У Вас есть какие-нибудь мысли по этому поводу? Отредактировано пользователем 13 января 2011 г. 19:00:17(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Kirill Sobolev написал:Установить пароль на контейнер. Хм... Точно :) Но я уже, наверное, проверять не буду. Времени нет. Может потом как-нибудь.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:У Вас есть какие-нибудь мысли по этому поводу? Пока нет, но может быть откачанный WSDL натолкнет. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Не удается попробовать - корневого сертификата вебсервера iruc.ru у меня нет. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close