我有一些使用 ASP.NET 4.5.2 编写的服务,这些服务可以从外部Web服务获取数据。这些服务完美运行了一年左右,没有出现错误。但是,第三方供应商最近已将其API限制为使用TLS 1.1或更高版本的客户端的请求。
我们的服务因外部Web服务被拒绝而失败。我已经检查了用于托管服务的服务器- Windows Server 2012 R2 -该服务器已配置了TLS 1.1和1.2(我已经检查了注册表项)。因此,确定我们的.NET服务请求应该默认为其中之一吗?
我们的服务仍被拒绝的事实表明我们仍在使用TLS 1.0发送请求。
如何检查我们的服务是否使用TLS 1.1或更高版本?如何启用服务以使用TLS 1.1或更高版本?
答案 0 :(得分:1)
您可以使用以下工具检查客户端主机名支持的TLS协议。
https://www.ssllabs.com/ssltest/analyze.html
您将找到TLS 1.0 / 1.1 / 1.2 / 1.3 / SSL3 / SSL2的状态
要了解.Net框架与TLS之间的关系,请参阅下面的链接。
https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/
答案 1 :(得分:1)
我们的服务仍被拒绝的事实表明我们仍在使用TLS 1.0发送请求。
在这种情况下,您使用TLS作为客户端,而不是服务器来连接到远程服务。
我有一些使用ASP.NET 4.5.2编写的服务
.NET Framework 4.5.2需要更改一些注册表项,才能使用TLS 1.2。 .NET TLS guide中对此进行了记录。
也许最简单的事情就是升级到最新版本的.NET Framework。如果不可能,则可以按照指南中的说明进行操作
Set the SchUseStrongCrypto and SystemDefaultTlsVersions registry keys to 1.