带有ODBC的.NET Core中带有TLS 1.2的SQL Server

问题描述 投票:0回答:1

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

在注册表中打开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客户端上使用dev机器连接到远程SQL Server。

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

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

这是配置:

  • Windows Server 2016(最新)
  • 带有最新更新的SQL Server 2016 SP2
  • 可以肯定的是,即使我没有使用它,我也安装了.NET 4.7。

[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

我怀疑.NET标准2.0的System.Data.Odbc不支持1.2。我很乐意得到一些帮助和指示。

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

  • 版本为11.4.7001.0的Microsoft SQL Server 2012 Native Client
  • 用于SQL Server的Microsoft ODBC驱动程序17,版本为17.3.1.1
  • 用于SQL Server的Microsoft ODBC驱动程序11,版本为12.2.5543.11
  • 用于SQL Server的Microsoft ODBC驱动程序13,版本为14.0.1000.169
sql-server odbc tls1.2 asp.net-core-2.2 tls1.0
1个回答
-1
投票

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

解决方案是获取(或确认您正在使用)更新的SQL Server,from Microsoftfrom my employerfrom another vendor的ODBC驱动程序...

© www.soinside.com 2019 - 2024. All rights reserved.