我们最近更改了注册表,强制我们的系统仅使用 TLS 1.1 和 1.2,并禁用任何 TLS 1.0 及更低版本。更改后,我们的大多数服务都很好,除了 TFS 2013,我找不到它的修复方法。Web 应用程序可通过 https 获得,但开发人员在 Visual Studio 2017 中遇到了签入问题。构建尝试进入队列,然后在运行几分钟后失败。更奇怪的是,我也遇到了 TFS 管理控制台问题。即使 Web 应用程序在管理控制台中可用,我也会收到错误,无法打开“组成员身份”、“管理安全性”或“更改 URL”下的测试 URL。
服务器证书和 IIS 绑定都针对 TLS 1.1+ 正确配置(正如我所说,Web 应用程序是可访问的),并且我确信注册表更改以启用 TLS 1.1+ 并禁用所有其他更改是原因,因为回滚更改会消除所有问题。
有人知道这里发生了什么以及如何解决它吗?
答案1
这为我们解决了这个问题。
如果上述链接将来出现故障,可以采用以下解决方案:
.NET 有一项名为“useStrongCrypto”的设置,允许客户端 PC 使用 TLS 1.1 及更高版本。默认情况下,它未启用。为了强制 .NET 使用此功能,需要进行 2 次或更多次注册表编辑。这些键可能不存在,因此需要添加它们,或者如果它们存在,它们的值为 0。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SchUseStrongCrypto = 00000001
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\SchUseStrongCrypto = 00000001
第二个 .NETFramework 下可能有多个键,具体取决于安装的 .NET 版本。最好在每个键下添加 SchUseStrongCrypto,以避免将来出现问题。如果/当安装了新版本的 .NET 时,可能需要再次执行此操作。