ITPub博客

微软的一个补丁,让所有的应用宕机,可怕

原创 SQL Server 作者:datapeng 时间:2017-03-16 08:24:24 0 删除 编辑

    最近在阿里云上部署了一台机器,安装了sql server2012数据库,把原来的数据迁移过来,结果悲剧了,日志里报出如下错误:

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“SQL Server 返回的响应不完整。连接已关闭。
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)

    感觉很奇怪,操作系统没有变化,都是由阿里云提供安装的,数据库版本也没有变化,也是一样的介质安装的,结果就搞不懂了,出现一种非常恶劣的情况,几台应用突然因为连接泄露,全部宕机,直接让生产歇菜,这下日志难过了。开始还以为是程序的问题,结果程序方面进行全面的检查,也没有发现什么。
    后来咨询了微软的一位比较资深的人士,他告诉我们可能是由于以下补丁的安全信任机制引起的,具体补丁如下:
    KB3172605、KB3172614、KB3161608、KB3161606、KB3156418
有了这个,当然也就有了解决方法,卸载补丁了。

处理方法1:
    我们程序中搜索了以上补丁,在我们机器上只有KB3172605这个补丁。与原来老的机器比较,老的机器确实没有这个补丁。
    我们通过平台把补丁卸载了,然后把TLS_DHE_RSA_WITH_AES_128_CBC_SHA   TLS_DHE_RSA_WITH_AES_256_CBC_SHA这两个ssl密码套件的值清理掉,操作系统重启后,再启应用,再也没有报错。
后来,我们从google上搜索,网上也给出了第二种解决方案,如下:
处理方法2:
1 在命令提示符或搜索中,输入gpedit.msc,然后点击确定或Enter键,进入“本地组策略编辑器”。
2 在编辑器左侧“本地计算机策略”中,依次选择“计算机配置”-->“管理模板”-->“网络”-->“SSL 配置设置”。
3 在编辑器右侧双击设置下的“SSL 密码套件顺序”。进入“SSL 密码套件顺序”编辑器。
4 选择“已启用”。
5 删除“选项”中“SSL 密码套件”的值中如下两个套件:
TLS_DHE_RSA_WITH_AES_128_CBC_SHA   TLS_DHE_RSA_WITH_AES_256_CBC_SHA
6 点击右下角的“应用”后,点击“确定”。
7 重启计算机。

同样,在java平台上也给出了解决方案,1.6及1.6以下的版本,需要打补丁。

微软也是坑人呀,阿里也是坑人的,没有验证的补丁,不具备通用性,也直接加进去,我算是被坑了一把,还一直怪人家程序有问题,殊不知是自己的问题,掉大了。

请登录后发表评论 登录
全部评论

注册时间:2013-12-06

  • 博文量
    213
  • 访问量
    2459850