Java 8 默认禁用 TLSv1 导致 SQLServer 连接失败
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
最近发现有一批新数据没有同步过来,查询表数据和日志发现是定时任务的问题,原因是Java 8新版本禁用了TLSv1.0和TLSv1.1,而项目中SQLServer驱动使用的正是TLSv1,修改java.security文件,删除TLSv1和TLSv1.1,重启Web应用即可解决问题。
🎯
关键要点
- 一个月前为老项目升级了JDK版本,整个环境使用Docker镜像启动,Web服务正常。
- 运维同学发现有一批新数据没有同步,查询表数据和日志判定是定时任务的问题。
- 定时任务连接SQLServer服务器时出错,提示无法建立安全连接,原因是Java 8禁用了TLSv1.0和TLSv1.1。
- 项目中SQLServer驱动使用TLSv1,需要修改java.security文件,删除TLSv1和TLSv1.1。
- 找到jre目录,编辑java.security文件,修改jdk.tls.disabledAlgorithms属性。
- 重启Web应用以使修改生效,容器启动时通过挂载方式更新java.security文件。
➡️