Java 8 默认禁用 TLSv1 导致 SQLServer 连接失败

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

最近发现有一批新数据没有同步过来,查询表数据和日志后发现是定时任务的问题,原因是Java 8新版本禁用了TLSv1.0和TLSv1.1,修改java.security文件,删除TLSv1和TLSv1.1,重启Web应用即可解决问题。

🎯

关键要点

  • 一个月前为老项目升级了 JDK 版本,整个环境使用 Docker 镜像启动,Web 服务正常。
  • 运维同学发现有一批新数据没有同步,查询表数据和日志后判定是定时任务的问题。
  • 定时任务在连接 SQLServer 服务器时出错,提示无法建立安全连接,原因是 Java 8 禁用了 TLSv1.0 和 TLSv1.1。
  • 需要修改 java.security 文件,删除 jdk.tls.disabledAlgorithms 中的 TLSv1 和 TLSv1.1。
  • 修改完成后重启 Web 应用,若通过容器启动,则需将修改后的 java.security 文件挂载到容器中。
  • 重启容器以使修改生效。
➡️

继续阅读