我不知道我是否掌握了很好地表达这个问题所需的所有信息,所以请耐心等待.
我有一个本地网页(本地意思是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;
查看这些链接以获取更多详细信息:
MSDN上的system.net.servicepointmanager.securityprotocol
MSDN上的安全协议枚举
如果你很幸运,他们可能会指出你正确的方向:)