IDEA因为TLS版本过低导致无法连接sql-server数据库的问题

  1. 2023/4/27更新
  • 问题来源
  • 正文
  • 2023/4/27更新

    IDE中配置JDK

    发现可以直接在IDE中覆盖JDK中的配置,显然这种方式是更好的

    值参考:

    "-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL"

    相比默认,少了TLSv1

    问题来源

    IDEA 配置 sql-server 数据库出错的提示

    正文

    在网上能轻松找到解决办法是删除 java.security 文件中的一段 jdk.tls.disabledAlgorithms。但是不知道从哪个版本开始, idea 已经内置了一个 jdk。所以, 修改自己下载的 jdk中的相应文件并不会生效。我干脆从根目录搜了一遍java.security文件(find / -type f -name 'java.security'),发现在很多地方都存在,除了自己下载的 jdk 之外,可以发现下图的倒数第二行中:

    通过根目录遍历所有 java.security 文件得到的结果

    InteliJ IDEA.app 下也有一个配置文件, 这就是 idea 内部的一些工具使用的 jdk 地址,所以需要修改这个目录下的配置文件

    java.security 中关于 tls 禁用的段

    既然报错中提示说 TLS10 is not accepted by client preferences ,那就把上图中的 TLSv1 删掉,意思就是让 jre 不禁用这些(过时的)算法。

    修改完之后会立刻生效。

    windows 下的配置文件地址有略微的变动:

    windows 下的 idea 自带 jdk 位置


    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 yionr99@gmail.com