在测试CentOS8 下的 SQL Server时,发现无法与大部分原有的windows 下的数据库交换数据,SSMS下提供的错误为一个 SSL Provider的异常,表述为无法侦听。一开始认为Windows下缺乏组件,在这条路上走了很久,后来在一次偶然的情况下,想到用CentOS下的 sqlcmd进行连接测试,结果发现能连接到本机的数据库,但是无法访问到windows 数据库,才想到可能是操作系统层面的连接问题。
sqlcmd报的异常信息为: SSL Provider: [error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol],错误源与ssms一样,因此想到,可能是因为CentOS的SSL信息与Windows不一致导致的。
查找相关SSL信息时,发现一片说明 OpenSSL 问题的文档,根据其分析的内容,尝试修改相关的文件后,再进行连接尝试,发现成功。
由此可见,Linux 新版本的SSL加密方式,可能与以前系统的版本不一致,导致两端协商失败。该问题应该是一个后续新老版本间的通病,在系统间通讯时,需要注意该类版本差异问题。