fix: 禁用SQL Server加密以解决TLS版本不兼容问题
This commit is contained in:
parent
643b2ffb5c
commit
5287673083
@ -108,15 +108,9 @@ public class ThirdPartyDbService {
|
||||
switch (config.getDbType().toLowerCase()) {
|
||||
case "sqlserver":
|
||||
driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
|
||||
// 使用TLS 1.0协议连接旧版SQL Server - 放宽所有安全限制
|
||||
url = String.format("jdbc:sqlserver://%s:%d;databaseName=%s;encrypt=true;trustServerCertificate=true;TrustServerCertificate=true;hostNameInCertificate=*",
|
||||
// 禁用加密以绕过TLS版本问题(旧版SQL Server只支持TLS 1.0)
|
||||
url = String.format("jdbc:sqlserver://%s:%d;databaseName=%s;encrypt=false;trustServerCertificate=true",
|
||||
config.getHost(), config.getPort(), config.getDatabase());
|
||||
// 在连接前设置系统属性以启用TLS 1.0和旧版证书算法
|
||||
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
|
||||
// 清除TLS禁用算法列表
|
||||
java.security.Security.setProperty("jdk.tls.disabledAlgorithms", "");
|
||||
// 清除证书路径禁用算法列表
|
||||
java.security.Security.setProperty("jdk.certpath.disabledAlgorithms", "");
|
||||
break;
|
||||
case "mysql":
|
||||
driverClass = "com.mysql.cj.jdbc.Driver";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user