c# - SSL API 请求截至今天失败 : "Could not create SSL/TLS secure channel"

标签 c# ssl nginx

我们有一个 C# .NET 4.5 桌面应用程序,该应用程序于半年前发布,直到今天运行良好。 在启动时,应用程序向我们的 Web API 发送一个 JSON 请求,但失败并显示

{"The request was aborted: Could not create SSL/TLS secure channel."}

我发现了一些其他主题的解决方案:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

它也适用于我们的应用程序,但大问题仍然存在: 为什么在几千台电脑上运行了半年?

我首先想到的是:夏令时,今天发生了时间变化。所以我检查了服务器时间,更新了 SSL 证书并重新启动了服务器,但问题仍然存在。

有什么想法吗?

应用: .NET 4.5

服务器: Ubuntu 16.04.2 长期支持版 nginx/1.11.10

更新 为域禁用 Cloudflare 后,问题就消失了。我不知道到底是什么原因造成的,但我怀疑它实际上有某事。与 DST 时区和 SSL 握手有关。

最佳答案

我们有完全相同的问题。

今天早上 Cloudflare 似乎放弃了对 TLS 1.0/1.1 的支持(在我们的案例中)。 我已将此问题提交给 Cloudflare。但目前还没有得到他们的回应。

与此同时,我在他们的社区 (https://community.cloudflare.com/t/was-the-tls-1-0-1-1-not-supported-since-4am-utc-2017-10-30/7586/3) 中提问。还有其他用户也受到了影响。

我最初的想法是 DST,但今天是 DST 切换后的第二天,加上我们的服务器/客户端在同一台服务器上运行,使用 UTC。所以这不可能是由于 DST 问题(除非 Cloudflare 内部有问题)


现在的解决方案就像你所做的那样,强制客户端使用 TLS 1.2+

关于c# - SSL API 请求截至今天失败 : "Could not create SSL/TLS secure channel",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47005547/

相关文章:

docker - ssl 证书或 nginx 代理服务器不工作

java - 使用 found 通过 SSL 连接到 elasticsearch

nginx - 将 nginx conf 挂载为 docker 卷会导致系统错误 boot2docker

node.js - nginx 响应 "301 moved permanently"

ruby-on-rails - Rails - 当我尝试删除或发布操作时,sidekiq Web 界面显示禁止

c# - 对具有多个级别的 Dictionary<string,Object> 进行排序

Node.js HTTPS 服务器 ERR_EMPTY_RESPONSE

c# - 从 TD Ameritrade 反序列化 JSON

c# - 如何在 C# 中使用 DebugBreak()?

c# - Grpc.授权 : Could not load type 'Grpc.Core.CallCredentials' from assembly 'Grpc.Core.Api'