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文件。
➡️

继续阅读