use*_*451 5 sql-server ssl odbc
我正在尝试为我的应用程序创建/修改系统数据源,该数据源需要通过ODBC数据源连接到我们的Microsoft SQL Express 2014数据库.在我们启用SSL加密流之前,连接曾经起作用,但是,现在我们有了加密链接,连接不再起作用了.
以下是一些细节:
我们在Microsoft SQL Server登录中收到两条连续的错误消息:
Connection failed:
SQLState : '01000'
SQL Server Error: 771
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(SECDoClientHandshake()).
Connection failed:
SQLState : '08001'
SQL Server Error: 18
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]SSL Security error.
Run Code Online (Sandbox Code Playgroud)
我查看了我能找到的所有文献,但找不到解决方案.
编辑27/01/2016 16:30
在erg建议之后,我尝试使用最后一个MS SQL Server Native Client版本(我系统上的11.00.2100),但它仍然无法解决问题.我遇到了另一个问题(无论我是否强制客户端的强加密导致相同的错误):
Running connectivity tests...
Attempting connection
[Microsoft][SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.
[Microsoft][SQL Server Native Client 11.0]Client unable to establish connection
TESTS FAILED!
Run Code Online (Sandbox Code Playgroud)
所以,我终于在努力了一点之后才开始工作了.
首先,似乎SQL Server Express 2014 SP1还有另一个CU可用(CU4).
我确实下载并安装它,但它没有解决我的问题:只要我停用TLS 1.0及以下版本ODBC就无法正常工作.
奇怪的是,尽管CU3和.NET 4.6的安装允许我成功登录Management Studio,但当我尝试执行xp_readerrorlog
查询时,它实际上失败了.
我为解决我的问题所做的是遵循malthus关于另一个相关堆栈溢出问题的答案 https://dba.stackexchange.com/questions/93127/sql-server-service-won-t-start-after-disabling-tls- 1-0-and-ssl-3-0(来自顶部的第3个答案).
因此,我在我的计算机上激活了本地安全策略,并设法获取到我的SQL数据库工作的链接.
现在,我让IIS在我自己的服务和客户端工作.
顺便说一句,如果有人需要一种更友好的方式来激活Windows上的SSL/TLS版本和加密算法,我偶然发现了一个不需要使用regedit的优秀GUI应用程序:
https://www.nartac.com/Products/IISCrypto.它是免费的,我不是Nartac Software的员工,经理或股东.
我希望这个能帮上忙!
编辑2016年2月25日
看起来最新的累积更新(在https://support.microsoft.com/en-us/kb/3130926上提供的CU5 )无需激活系统加密的FIPS选项.
我发现这一点,因为我必须停用FIPS以启用另一个所需的功能,同时仍然依赖于TLS 1.2连接.实际上,似乎激活系统密码术的FIPS选项会阻止.NET Framework成功使用某些系统算法(例如SHA256Managed).
此外,根据网上看到的一些讨论(即 http://blogs.technet.com/b/secguide/archive/2014/04/07/why-we-re-not-recommending-fips-mode-anymore .aspx)建议不要激活FIPS(严格遵守某些政府建议除外),因为它会依赖于非FIPS验证的加密算法实现来破坏应用程序,但这些实现在Microsoft系统库中提供.
归档时间: |
|
查看次数: |
34343 次 |
最近记录: |