Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline artsb  
#11 Оставлено : 12 января 2011 г. 17:30:15(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline Kirill Sobolev  
#12 Оставлено : 12 января 2011 г. 19:32:46(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
Сертификат установлен в "Личные". Закрытый ключ есть.

А обращение к нему при вызове метода происходит?
Техническую поддержку оказываем тут
Наша база знаний
Offline artsb  
#13 Оставлено : 12 января 2011 г. 20:03:34(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline artsb  
#14 Оставлено : 12 января 2011 г. 23:03:21(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 06.05.2010(UTC)
Сообщений: 103
Откуда: центр Вселенной

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Я немного запутался.
Сертификат, который используется для установки защищённого соединения (https) и сертификат, который я указываю в параметре SSLClientCertificateName - это один и тот же сертификат?
Если это так, то тогда, возможно, моя текущая проблема вытекает из первой. И значит, у меня не тот сертификат.

Есть ли к сертификатам для SOAP какие-то конкретные требования? Например, издателем должен быть владел сервера с SOAP-сервисом и т.п.
Offline Kirill Sobolev  
#15 Оставлено : 13 января 2011 г. 17:12:35(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
А как это можно проверить?

Установить пароль на контейнер.
Цитата:
Сертификат, который используется для установки защищённого соединения (https) и сертификат, который я указываю в параметре SSLClientCertificateName - это один и тот же сертификат?

Конечно
Цитата:
Есть ли к сертификатам для SOAP какие-то конкретные требования?

Точно такие же, как и к сертификатам клиентской аутентификации.
Техническую поддержку оказываем тут
Наша база знаний
Offline artsb  
#16 Оставлено : 13 января 2011 г. 17:20:14(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline artsb  
#17 Оставлено : 13 января 2011 г. 17:26:10(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 06.05.2010(UTC)
Сообщений: 103
Откуда: центр Вселенной

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Kirill Sobolev написал:
Установить пароль на контейнер.

Хм... Точно :) Но я уже, наверное, проверять не буду. Времени нет. Может потом как-нибудь.
Offline Kirill Sobolev  
#18 Оставлено : 13 января 2011 г. 19:09:36(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
У Вас есть какие-нибудь мысли по этому поводу?

Пока нет, но может быть откачанный WSDL натолкнет.
Техническую поддержку оказываем тут
Наша база знаний
Offline artsb  
#19 Оставлено : 13 января 2011 г. 20:16:14(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 06.05.2010(UTC)
Сообщений: 103
Откуда: центр Вселенной

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Отправил на почту.
Offline Kirill Sobolev  
#20 Оставлено : 14 января 2011 г. 19:52:11(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Не удается попробовать - корневого сертификата вебсервера iruc.ru у меня нет.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.