Подключитесь к https: // webservice в приложении asp.net - PullRequest
3 голосов
/ 12 апреля 2010

У меня есть веб-сайт ASP.NET, который обращается к веб-службе. Все работает нормально, подключение через http, но когда я пытаюсь https: // он не может подключиться. Кажется, я не получаю никакой ошибки от веб-сайта, и журналы веб-службы не показывают ничего, означая, что с этим ничего не связано.

Я могу подключиться к своему веб-сервису https: // с сайта, такого как soapclient.com, и запросить информацию, чтобы веб-сервис и порты работали.

Есть ли что-то особенное, что я должен сделать, чтобы подключиться к веб-службе https: // через обычный http: // один в .NET? Все, что я сейчас делаю, - это изменение URL-адреса, к которому он подключается, на мой защищенный.

Я использую ASP.NET 2, IIS7

Заранее спасибо.

РЕДАКТИРОВАТЬ: только что обнаружил фактическое сообщение об ошибке: базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL / TLS - что, на мой взгляд, говорит мне, что я не добавил свой самоподписанный сертификат в установленные сертификаты на сервере ... но у меня есть ...

Ответы [ 2 ]

1 голос
/ 12 апреля 2010

Вам необходимо добавить самозаверяющий сертификат в разделе «Доверенные корневые центры сертификации» в хранилище локального компьютера сервера, на котором работает веб-сайт ASP.NET.

Экспортируйте сертификат с сервера веб-службы в виде файла .cer и скопируйте его на сервер, на котором работает веб-сайт ASP.NET. Затем на этом сервере:

  1. Дважды щелкните файл .cer и установите сертификат
  2. В мастере выберите хранилище в качестве папки «Локальный компьютер» в разделе «Доверенные корневые центры сертификации».
  3. Возможно, вам придется перезапустить IIS или сервер

В нижней части этой страницы есть несколько хороших инструкций в разделе «Установка самозаверяющего сертификата на клиентских компьютерах»: http://webhelp.esri.com/arcgisserver/9.3/dotNET/index.htm#setting_up_ssl.htm

0 голосов
/ 12 апреля 2010

Похоже, ваш клиент обнаружил ошибку проверки сертификата, поскольку сертификат вашего сервера самоподписан.

Попробуйте включить следующую строку (C #) в коде своего веб-сайта перед вызовом веб-службы.Это скажет .NET игнорировать все ошибки проверки сертификата:

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; };

Это, очевидно, не должно использоваться в производственной среде:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...