RuoYi框架连接SQL Server时解决“SSL协议不支持”和“加密协议错误”
RuoYi框架连接SQL Server时解决“SSL协议不支持”和“加密协议错误”
在使用RuoYi框架进行开发时,与SQL Server数据库建立连接可能会遇到SSL协议相关的问题。以下是两个常见的错误信息及其解决方案。
错误信息1
com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool; 'encrypt' property is set to 'false' and 'trustServerCertificate' property is set to 'true' but we could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption; Error: No appropriate protocol (protocol is disabled or cipher suites are inappropriate).
错误信息2
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. ClientConnectionId:3dda3a1b-6554-4c49-b660-20ac85a109d3
这两个错误都表明,数据库连接尝试使用SSL加密,但由于协议不支持或密码套件不匹配而失败。以下是解决此问题的步骤。
解决方案
步骤1:定位JDK目录
找到你的JDK安装目录。通常,它位于/Library/Java/JavaVirtualMachines/
下。例如,如果你使用的是JDK 1.8.0_291,路径可能是:
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
步骤2:修改安全配置文件
使用文本编辑器(如vim)打开java.security
文件:
vim /jdk1.8.0_291.jdk/Contents/Home/jre/lib/security/java.security
找到以下内容:
jdk.tls.disabledAlgorithms=TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
步骤3:禁用不安全的协议
从jdk.tls.disabledAlgorithms
中删除SSLv3
, TLSv1
, TLSv1.1
三项协议:
jdk.tls.disabledAlgorithms=RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
步骤4:重启RuoYi项目
保存文件并退出编辑器。然后,重启你的RuoYi项目,问题应该已经解决。
总结
通过禁用不安全的协议,我们可以确保SQL Server连接使用更安全的协议和密码套件。这种方法简单有效,适用于大多数RuoYi框架下的SQL Server连接问题。希望这篇文章能帮助你快速解决问题,继续你的开发工作。
以上是解决RuoYi框架下连接SQL Server时“SSL协议不支持”和“加密协议错误”问题的具体步骤和方法。如果你有任何疑问或需要进一步的帮助,请随时在评论区留言。