Я пытался понять, как заставить веб-сервис взаимодействовать с использованием SSL. Я разработал простой веб-сервис с использованием Visual Studio. Он не использует WCF. Я развернул его на сервере, на котором работает IIS, и могу добавить к нему веб-ссылку с другого компьютера и выполнять вызовы на него. Похоже, что он работает правильно по стандартному HTTP-соединению.
Теперь я хочу изменить сервер и клиент для использования SSL. Я получил 30-дневный тестовый сертификат от Verisign и установил его на сервере IIS. Теперь я могу добавить веб-ссылку на клиентский компьютер в Visual Studio, который обращается к службе через HTTP или HTTPS. Это удивило меня. Я думал, что смогу получить к нему доступ только через HTTPS, так как
сертификат сервера был установлен для безопасной связи. Почему я могу получить к нему доступ как по HTTP, так и по HTTPS?
Кроме того, когда я впервые получил доступ к веб-службе через HTTPS, я получил сообщение о неизвестном сертификате. Я просмотрел сертификат сервера и установил его в доверенном корневом центре сертификации на клиентском компьютере.
Итак, на клиентской машине я могу создать службу через HTTPS в моем тестовом приложении. Но когда я выполняю вызов метода в службе, я получаю исключение, говорящее о том, что нельзя установить доверенное соединение. Если я создаю сервис по HTTP-соединению, он работает правильно.
Итак, мои вопросы:
1) Если я могу создать веб-ссылку на службу через HTTPS, разве это не означает, что транспорт HTTPS работает правильно?
2) Почему я могу создать ссылку на HTTP и HTTPS? Они не должны быть взаимоисключающими.
3) Что мне нужно сделать, чтобы исправить невозможность создать исключение для доверенного соединения?
Заранее спасибо за любые предложения здесь.