为什么TLS与非安全的http相关?

时间:2019-04-23 01:24:16

标签: c# http https tls1.2

我正在使用WebClient从Web资源中获取数据,因此:

var wc = new System.Net.WebClient();
var stream = wc.OpenRead("http://...");
// etc..

它一直工作到最近,直到服务器强行关闭连接。

基于this StackOverflow answer,我添加了ServicePointManager设置:

var wc = new System.Net.WebClient();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var stream = wc.OpenRead("http://...");
// etc..

...,它再次像以前一样工作。

我了解到TLS与HTTPS相关,并且此设置的作用是在握手中包含TLS1.2,并且主机站点必须最近已更新以拒绝较旧的易受攻击的协议,但是 为什么普通的非安全HTTP必需

1 个答案:

答案 0 :(得分:1)

在WebClient实例中,

AllowAutoRedirect 默认设置为 true 。 因此,该请求会自动跟随来自服务器的重定向响应。

只需将 AllowAutoRedirect 设置为false,就不会进行任何重定向,因此您不必处理SSL / TLS握手。

当然,如果您的服务器不想使用HTTP服务您的请求,那么您将不会获得所需的内容。无论如何,将 AllowAutoRedirect 设置为false可以帮助您确认遇到的行为是由于重定向引起的。