已协商获取 `TLSv1。尝试连接到 MS SQL 服务器时,请更新服务器和客户端以至少使用 TLSv1.2

Posted

技术标签:

【中文标题】已协商获取 `TLSv1。尝试连接到 MS SQL 服务器时,请更新服务器和客户端以至少使用 TLSv1.2【英文标题】:Getting `TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum` while trying to connect to MS SQL server 【发布时间】:2020-12-02 05:33:30 【问题描述】:

这是我的连接字符串:

public static void connectToDatabase() 
    String url = "jdbc:sqlserver://192.168.0.95\\instance;databaseName=sampleDB";
          
    String username = "sa";
    String password = "pass";

    try 
       Connection conn =  DriverManager.getConnection(url,username,password);
       System.out.println("Connected to sql server");                   
    

我从未使用过 MS SQL,但我需要连接,这是我遇到的错误:

avg 12, 2020 2:45:47 PM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
WARNING: TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. 
ClientConnectionId:33111bca-b8c7-4be3-9673-b012c5949817

我正在使用 Windows 7 专业版(不要问)。我该如何解决这个问题?

【问题讨论】:

您正在使用 2 种完全不受支持的产品这一事实在很大程度上是这里的根本问题。是时候将这两个版本都升级到支持的版本了 @Larnu 它是公司财产 :(。我想首先是从 TLSv1 到 TLSv1.2。第二个是什么? 您运行的是哪个版本的 SQL Server 2008? “这是公司财产” 然后是时候让他们开始为支持的软件付费了。 TLS1.0 是一个巨大的安全风险,而 SQL Server 2008 和 Windows 7 已经一年多没有收到任何安全更新,并且可能也存在已知的安全风险。 @Larnu 版本是 SQL Server 2008 r2。好吧,因为 covid 初级开发人员的工作不存在。我现在必须在这里工作,这是我的第一天,无法连接到数据库。你能帮忙吗? 【参考方案1】:

警告消息“警告:已协商 TLSv1。请更新服务器和客户端以至少使用 TLSv1.2。与连接异常无关。

即使有警告,也会建立连接。 连接问题似乎与连接参数有关。

而不是 字符串 url = "jdbc:sqlserver://192.168.0.95\instance;databaseName=sampleDB";

使用 字符串 url = "jdbc:sqlserver://192.168.0.95;databaseName=sampleDB";

同时传递正确的用户名和密码。

【讨论】:

【参考方案2】:

在 Maven 项目中,您可以像这样更改 pom.xml 中的版本;

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.2.1.jre11</version>
</dependency>

【讨论】:

【参考方案3】:

我收到此问题是因为我的服务器密码已过期

【讨论】:

以上是关于已协商获取 `TLSv1。尝试连接到 MS SQL 服务器时,请更新服务器和客户端以至少使用 TLSv1.2的主要内容,如果未能解决你的问题,请参考以下文章

带有 TLSv1.2 的 Java 7 连接到 LDAPS 握手失败

无法使用 Jupyter 笔记本上的 pyspark 从 Apache Spark 连接到 MS SQL

尝试连接到 SQL 表时,MS Access 2007 中的查询错误

MS-Access ODBC 连接到 Oracle for SQL

sqlalchemy 无法连接到 ms sql server

使用 MS Access 2003 连接到 SQL Server 2005