fix: 使用sslProtocol=TLSv1显式指定TLS协议

This commit is contained in:
Your Name 2026-01-05 17:08:04 +08:00
parent 8d9ddd4bfe
commit 8d6025868c

View File

@ -108,11 +108,9 @@ public class ThirdPartyDbService {
switch (config.getDbType().toLowerCase()) {
case "sqlserver":
driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// 完全禁用SSL加密以支持旧版SQL Server
url = String.format("jdbc:sqlserver://%s:%d;databaseName=%s;encrypt=false;trustServerCertificate=true;integratedSecurity=false",
// 完全禁用SSL加密以支持旧版SQL Server,并显式设置TLS协议
url = String.format("jdbc:sqlserver://%s:%d;databaseName=%s;encrypt=true;trustServerCertificate=true;sslProtocol=TLSv1",
config.getHost(), config.getPort(), config.getDatabase());
// 启用TLS 1.0支持(针对旧版SQL Server)
System.setProperty("jdk.tls.client.protocols", "TLSv1,TLSv1.1,TLSv1.2,TLSv1.3");
break;
case "mysql":
driverClass = "com.mysql.cj.jdbc.Driver";