我不知道我是否掌握了很好地表达这个问题所需的所有信息,所以请耐心等待。
我有一个受自签名SSL证书保护的本地网页(本地意义为192.168。*)。我正在尝试使用System.Net.HttpWebRequest对象访问此页面,但我遇到了一个奇怪的问题。
如果在Internet Explorer中访问此页面并关闭“使用SSL 2.0”选项,浏览器将返回错误,就好像它无法建立连接一样。 (换句话说,浏览器连接错误,而不是服务器发送的错误。)如果打开“使用SSL 2.0”选项,页面工作正常,您会得到标准警告,这是一个自签名证书,你想继续等吗(奇怪的是,Firefox,据说没有打开SSL 2.0,工作得很好。)
现在我的问题是我正在尝试使用HttpWebRequest对象访问此页面,并且它返回的错误是连接意外关闭,就像关闭“使用SSL 2.0”时IE抛出的错误一样。 (我已经有代码来忽略它是一个自签名证书的事实,但它甚至没有达到那么远。)
在发出请求时,如何让System.Net.HttpWebRequest获得“使用SSL 2.0”?
答案 0 :(得分:16)
我在处理Ssl3时遇到过这个问题,虽然我不确定相同的建议是否适用于SSL2?
要解决此问题,我在安全协议上设置了Ssl3标志,如下所示:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
查看这些链接了解更多详情:
system.net.servicepointmanager.securityprotocol on MSDN
security protocol enumeration on MSDN
如果你很幸运,他们可能会指出你正确的方向:)