首页 > 解决方案 > 带有 .NET Core 的 TLS 1.2 的 SQL Server 和 ODBC

问题描述

我知道这已经出现了一百万次,但显然不是 .NET Core 使用System.Data.Odbc.

在注册表中打开 TLS 1.0 后,我收到一个错误:

{System.Data.Odbc.OdbcException (0x80131937): ERROR [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SSL Security error

ERROR [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (SECDoClientHandshake()).

在托管 SQL Server 的服务器上运行 ASP.NET Core 站点时出现该错误,但同时也在 Windows 10 客户端上使用开发机器连接到远程 SQL Server。

SSMS 在服务器和客户端上运行和连接都很好。当我打开 TLS 1.0 支持并重新启动 SQL Server 时,该站点在服务器和客户端上都运行良好。(无需重新启动即可查看差异)。

确保我启用了 FIPS 支持,即使我在某处读到不再需要它。

这是配置:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] "Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] "DisabledByDefault"=dword:00000001

我怀疑System.Data.Odbcfor .NET Standard 2.0 不支持 1.2。我很想得到一些帮助和指点。

[编辑] @TallTed 这是安装的,它应该支持 TLS 1.2:

标签: sql-serverodbctls1.2asp.net-core-2.2tls1.0

解决方案


System.Data.Odbc不是问题;[Microsoft][ODBC SQL Server Driver][DBNETLIB]是。

解决方案是从 Microsoft我的雇主其他供应商处获取(或确认您正在使用)更新的 SQL Server ODBC 驱动程序......


推荐阅读