fix: 禁用SQL Server加密以解决TLS版本不兼容问题

This commit is contained in:
Your Name 2026-01-06 11:07:25 +08:00
parent 643b2ffb5c
commit 5287673083

View File

@ -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";