假设我做了这样的典型事情:
HttpRequestMessage requestMessage = new HttpRequestMessage();
requestMessage.RequestUri = new Uri("https://api.site.com/");
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Task<HttpResponseMessage> responseMessage = httpClient.SendAsync(requestMessage);
API 服务告诉我,由于 POODLE 漏洞,他们正在关闭 SSL 3.0,我是否需要对我的代码执行任何操作以确保它将使用 TLS?发出请求的机器需要发生什么事情吗?
我知道这个问题中存在很大的无知,但我认为很多开发人员只是希望这个问题得到解答。
最佳答案
昨天我在 Facebook 和 Twitter 上遇到了同样的问题,从今天开始在 Linkedin 上也遇到了同样的问题。在每个网络请求对我起作用之前添加了以下代码。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
这很令人困惑,因为重新启动应用程序时,它在第一个错误之前工作了 10-15 分钟。以下是记录的错误。
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
我尝试使用 powershell 脚本在服务器中禁用 ssl 并启用 tls http://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12
它不起作用,最后不得不更改代码才能使其起作用。
关于asp.net - 由于 POODLE 漏洞,我使用的 API 服务正在禁用 SSL 3.0。如果我使用 HttpClient 和 HttpRequestMessage 是否需要更改代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26405396/