• 博客访问: 2437073
  • 博文数量: 207
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-06 20:42
个人简介

怎么改都失败,还改个毛呀

文章分类

全部博文(207)

文章存档

2018年(11)

2017年(24)

2016年(28)

2015年(34)

2014年(75)

2013年(35)

分类: SQL Server

2017-03-16 08:24:24

    最近在阿里云上部署了一台机器,安装了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以下的版本,需要打补丁。

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

阅读(2270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册