Как получить объект System.Web.HttpWebRequest для использования SSL 2.0?
-
05-07-2019 - |
Вопрос
Я не знаю, есть ли у меня вся информация, необходимая для правильного формулирования этого вопроса, так что терпите меня.
У меня есть локальная веб-страница (локальное значение 192.168. *), которая защищена самозаверяющим сертификатом SSL. Я пытаюсь получить доступ к этой странице с помощью объекта System.Net.HttpWebRequest, но столкнулся со странной проблемой.
Если эта страница открыта в Internet Explorer с помощью " Использовать SSL 2.0 " При отключенной опции браузер возвращает ошибку, как будто не может установить соединение. (Другими словами, ошибка подключения к браузеру, а не ошибка, отправленная сервером.) Если " Использовать SSL 2.0 " опция включена, страница работает нормально, и вы получаете стандартное предупреждение о том, что это самозаверяющий сертификат, хотите ли вы продолжить и т. д. (как ни странно, Firefox, который предположительно не имеет включенного SSL 2.0, работает просто хорошо.) р>
Теперь моя проблема в том, что я пытаюсь получить доступ к этой странице с помощью объекта HttpWebRequest, и ошибка, которую он возвращает обратно, заключается в том, что соединение было неожиданно закрыто, точно так же, как ошибка, которую IE выдает, когда " Использовать SSL 2.0 " выключен (У меня уже есть код, чтобы игнорировать тот факт, что это самозаверяющий сертификат, но он даже не зашел так далеко.)
Как получить System.Net.HttpWebRequest, чтобы, ну, " Использовать SSL 2.0 " когда он делает запрос?
Решение
Я сам столкнулся с этой проблемой при работе с Ssl3, хотя не уверен, что этот же совет подойдет для SSL2?
Чтобы обойти эту проблему, я установил флаг Ssl3 в протоколе безопасности следующим образом:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
Проверьте эти ссылки для получения дополнительной информации:
system.net.servicepointmanager.securityprotocol на MSDN р>
перечисление протоколов безопасности в MSDN
Они могут указать вам правильное направление, если вам повезет:)