线上报错:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”
时间: 2024-04-03 21:37:18 浏览: 59
这个报错的意思是你的应用程序使用的是TLS1.0加密协议,而数据库服务器选择的是TLS1.0加密协议,而你的客户端偏好的加密协议是TLS1.3和TLS1.2,因此连接失败了。解决这个问题的方法是升级你的应用程序使用的加密协议版本到TLS1.2或TLS1.3,或者在数据库服务器上启用TLS1.3或TLS1.2协议。您可以尝试在连接字符串中添加"TrustServerCertificate=True;Encrypt=True;",这将允许您在不使用SSL加密的情况下建立连接。
相关问题
com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server建立安全连接
这个错误通常发生在使用较旧版本的 SQL Server JDBC 驱动程序尝试连接到启用 SSL 的 SQL Server 实例时。要解决这个问题,可以尝试以下解决方法之一:
1. 升级 SQL Server JDBC 驱动程序版本到最新版本。
2. 将 Java 安装的 cacerts 文件中的 SQL Server SSL 证书添加到信任列表中。可以使用 keytool 工具进行证书管理。例如,使用以下命令将证书添加到 cacerts 文件中:
keytool -import -alias sqlservercert -file sqlservercert.cer -keystore cacerts
其中,sqlservercert 是别名,sqlservercert.cer 是 SQL Server SSL 证书文件。
3. 禁用 SSL 连接选项。在连接字符串中添加 "sslProtocol=TLSv1" 参数,例如:
jdbc:sqlserver://localhost:1433;databaseName=myDB;sslProtocol=TLSv1
这将强制使用 TLSv1 协议进行加密连接,而不是使用默认的 SSL 协议。
注意:禁用 SSL 连接选项将降低安全性,因此应该仅在必要的情况下使用。
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
这个异常错误是因为在使用 SSL 加密与 SQL Server 建立安全连接时出现了问题。这可能是由于以下原因之一导致的:
1. SQL Server 没有启用 SSL 加密,需要在 SQL Server 上启用 SSL。
2. JDBC 驱动程序的版本不支持 SSL 加密,需要升级 JDBC 驱动程序的版本。
3. SSL 证书不正确或过期,需要重新生成 SSL 证书。
如果您确定 SQL Server 已启用 SSL 加密并且您使用的是最新版本的 JDBC 驱动程序,则可能是 SSL 证书的问题。您可以尝试重新生成 SSL 证书,并在连接字符串中指定正确的 SSL 证书路径和密码。
阅读全文