8

我不知道我是否掌握了很好地表达这个问题所需的所有信息,所以请耐心等待。

我有一个受自签名 SSL 证书保护的本地网页(本地含义 192.168.*)。我正在尝试使用 System.Net.HttpWebRequest 对象访问此页面,但遇到了一个奇怪的问题。

如果在关闭“使用 SSL 2.0”选项的 Internet Explorer 中访问此页面,浏览器会返回错误,就好像它无法建立连接一样。(换句话说,浏览器连接错误,而不是服务器发送的错误。)如果打开“使用 SSL 2.0”选项,则页面可以正常工作,并且您会收到标准警告,即这是自签名证书, 你想继续吗, 等等 (奇怪的是, Firefox, 据说没有打开 SSL 2.0, 工作得很好。)

现在我的问题是我正在尝试使用 HttpWebRequest 对象访问此页面,它返回的错误是连接已意外关闭,就像关闭“使用 SSL 2.0”时 IE 抛出的错误一样。(我已经有了代码来忽略它是一个自签名证书的事实,但它甚至没有走那么远。)

如何让 System.Net.HttpWebRequest 在发出请求时“使用 SSL 2.0”?

4

1 回答 1

16

在处理 Ssl3 时,我自己也遇到过这个问题,但我不确定同样的建议是否适用于 SSL2?

为了解决这个问题,我在安全协议上设置了 Ssl3 标志,如下所示:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

查看这些链接了解更多详情:

MSDN 上的 system.net.servicepointmanager.securityprotocol

MSDN 上的安全协议枚举

如果你幸运的话,他们可能会为你指明正确的方向:)

于 2008-10-04T00:10:32.533 回答