原项目在Windows下开发,编译正常。当换到类Centos系列的linux系统下开发时,遇到了编译问题:
驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server建立安全连接。错误:“Cretificates do not conform to algorithm constraints”
同样的连接配置,在DBeaver下可以正常连接,没有SSL配置,驱动配置中trustServerCertificate=true;encrypt=false
起初以为是maven依赖可能升级过,导致在编译时,连接数据库使用了加密方式导致的。
用-X参数打开详细内容查看。最后跟踪到GitHub上的源码。但是并未发现有不对的地方。
后来,通过搜索,将问题定位到了jdk环境问题。 最后查阅了上百篇解决方案,反复测试。
参考针对jdk8的java.security配置 对ssl 加密算法要求的问题。修改了jdk.tls.disableAlgorithms,jdk.tls.legacyAlgorithms没有效果。
甚至,直接配置到Intelij里的jvm option中,也没有效果。
最后通过 博客园的一篇文章 中的参考链接,终于找到了解决方案。
来自StackOverflow中的一个0点赞的解决方案
security.useSystemPropertiesFile = false解决。
看来还是系统环境问题。