【发布时间】:2019-12-07 19:51:07
【问题描述】:
我的公司有一些 dotNET 代码在过去三个月中一直在愉快地与 Twitter 的 API 对话,并在推特上发布我们的消息。
7 月 29 日,它停止工作,POST 请求遇到以下错误:An existing connection was forcibly closed by the remote hostSystem.Net.Sockets.SocketException
我认为这是因为我们的服务器仍在使用 TLS 1.1,而我从 6 月才发现 this Twitter API announcement,上面写着:
自 2014 年移除 SSL 支持 104 以来,Twitter API 已 所有传入连接都需要至少 TLS 1.0。两个 TLS 1.0 和 1.1 在 2008 年被 TLS 1.2 取代。
从 2019 年 7 月 25 日开始,所有与 Twitter API 的连接(以及所有 其他 Twitter 域)将需要 TLS 1.2。这一变化将影响 API 的所有格式和层级(REST、流式传输和 webhook; 标准、高级、企业以及广告和媒体 API),以及 更广泛的 Twitter 平台。
我们似乎得到了 4 天的宽限期,因为我们的代码在 7 月 25 日至 28 日之间没有任何问题。
我相信服务器本身已经安装了 TLS 1.2,所以问题可能是这个项目是用默认使用 TLS 1.1 的 dotNET 4.0 编译的?
将我们的项目升级到 dotNET 4.5 会解决问题吗,还是可以解决其他问题?
【问题讨论】:
-
听起来 4.6 可能会自动运行,否则你可以设置一个标志:Update .NET web service to use TLS 1.2