2009-12-03 7 views
0

У меня возникает ошибка цепочки доверия, когда я получаю ответ в WSE 3.0.WSE 3.0 Ошибка цепи доверия - как мне узнать, какой сертификат отправляется обратно? Я хочу знать, у какого сертификата есть ошибка цепи доверия.

Их сертификат в порядке, когда я беру WSDL. Их сертификат прекрасен, когда я подключаюсь. Мне нравится мой публичный сертификат, когда я отправляю XML-запрос.

Что WSE не нравится, это токен в ответе. Microsoft.Web.Service3 вызывает getelement, затем loadbinarysecuritytoken, но затем проверяет цепочку и не любит то, что видит.

Я хотел бы знать что токен ему не нравится. Я не уверен, как узнать, что означает токен. Это двоичные данные, поэтому HttpAnalyzer не очень помогает.

Я не могу решить проблему, пока не получу полное представление о том, что не так. Они посылают мне неправильный сертификат? Является ли это просто сертификатом, которого у меня нет, и мне нужно добавить к своему личному доверию? Какие?

+0

Я использую Visual Studio 2005, потому что WSE была заменена WCF. В результате WSE 3.0 не поддерживается в VS 2008 o VS 2010 – diadem

ответ

1

Вы должны знать, какие сертификаты задействованы правильно? Обычно это сертификат клиента и сертификат сервера. Мне кажется, что клиент не может проверить сертификат сервера, который использовался для подписи сообщения, которое получает клиент. Если вы используете самоподписанные сертификаты, попробуйте добавить этот сертификат в папку сертификата доверенного корневого центра сертификации на клиентской машине. Если ваш клиент является сервисом, вы должны поместить его в LocalMachine (при условии, что служба запущена как сетевая служба), в противном случае он будет указан в CurrentUser. Надеюсь, это указывает на то, что вы в правильном направлении.

+0

Я знаю, какой сертификат я ожидаю *, чтобы вернуться с сервера. Проблема в том, что я не уверен, что это действительно сертификат в сообщении SOAP. Сообщение SOAP обрабатывается основным кодом .NET. Это бинарный поток в мыльном сообщении. WSE расшифровывает сообщение о мыле в объект сертификата, а затем обрабатывает его. Если бы это был сертификат, который я ожидал, он бы не упал. Вопрос в том, какой сертификат я на самом деле ** получаю **. Как мне это понять? – diadem

+0

Подводя итог: К сожалению, нет. Я не знаю, какой сертификат я возвращаюсь. Это проблема. Я знаю, что находится в заголовке запроса ssl, но я не знаю, что такое подпись в самом мыльном сообщении. – diadem

+1

У вас есть доступ к сертификату ssl сервера? Потому что, если вы это сделаете, вы можете использовать wirehark, расшифровать трафик, увидеть сырые мыльные сообщения, получить строку base64 открытого ключа сертификата и загрузить его в экземпляр x509Certificate2 и посмотреть на него. –