Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008的解决方法

问题描述:

在 Java8(291) 之后,默认禁用了 TLS1.1,这会导致使用 JDBC 连接 SQL Server 2008 时无法使用 SSL 进行连接。那么如何解决这个问题呢?

解决方法:

  1. 升级 SQL Server 版本

首先,可以考虑升级 SQL Server 到支持更高安全协议的版本。例如,SQL Server 2012 及以上版本默认支持 TLS1.2,因此可以尝试升级到 SQL Server 2012 或以上版本。如果实在无法升级,可以考虑采取下面的解决方法。

  1. 配置 JVM

可以通过配置 JVM 来允许 TLS1.1 协议。具体来说,需要在启动 JVM 时加上如下参数:

-Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"

这个参数会启用 TLS1.1 和 TLS1.2 协议,并禁用 TLS1.0 协议。可以根据实际需求修改参数值。

另外,如果使用的是 OpenJDK,还需要添加以下参数:

-Djava.security.properties=${PATH_TO_OPENJDK}/conf/security/java.security

其中 ${PATH_TO_OPENJDK} 表示 OpenJDK 安装路径。

示例说明:

示例 1:Java 连接 SQL Server 2008 配置TLS1.1

假设我们的 Java 连接 SQL Server 2008 的代码如下:

Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=TestDB;", "user", "password");

如果我们按照上面的第二种方法来解决问题,可以在启动 JVM 时加上如下参数:

java -Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2" MainClass

其中 MainClass 表示 Java 主类名称。

示例 2:使用 Tomcat 连接 SQL Server 2008 配置TLS1.1

如果我们使用 Tomcat 来连接 SQL Server 2008,可以在 catalina.shcatalina.bat(根据操作系统不同)中添加如下参数:

JAVA_OPTS="$JAVA_OPTS -Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2"

这样在启动 Tomcat 时就会加上上述参数来设置 TLS 协议。

总结:

通过上述两种方法,我们可以解决 JDBC 无法使用 SSL 连接 SQL Server 2008 的问题。但是需要注意的是,如果使用的是 OpenJDK,还需要添加更多的配置参数。同时需要考虑升级 SQL Server 版本来提高安全性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008的解决方法 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 深入讲解SQL中的字符串拼接

    下面是深入讲解SQL中的字符串拼接的完整攻略。 标题:深入讲解SQL中的字符串拼接 一、什么是字符串拼接 字符串拼接是将两个或多个字符串连接起来,形成一个新字符串的操作。在SQL语言中,字符串拼接一般通过一些特定的运算符或函数来实现。 二、SQL中字符串拼接的运算符 SQL中字符串拼接一般使用“+”运算符,具体使用方式如下: SELECT column1 +…

    database 2023年5月18日
    00
  • mac下redis安装、设置、启动停止方法详解

    Mac下Redis安装、设置、启动停止方法详解 Redis是一种基于键值对的NoSQL数据库,相比于其他数据库,Redis具有内存读写效率高和支持多种数据结构等特点。本文将为大家详细讲解Mac下Redis的安装、设置、启动和停止方法。 安装Redis Mac下Redis的安装可以使用Homebrew或者手动方式。 使用Homebrew安装 如果已经安装了Ho…

    database 2023年5月22日
    00
  • Python使用Redis的完整攻略

    本文将详细讲解Python使用Redis的完整攻略。Redis是一款高性能的缓存系统,常用于解决应用系统瓶颈问题。在Python中,使用Redis可以很方便地实现缓存机制。 安装Redis 在使用Redis之前,需要先安装Redis。可以通过以下命令安装Redis: sudo apt-get install redis-server 或者通过官网下载Redi…

    Redis 2023年3月21日
    00
  • 让sql2005运行在独立用户下出现 WMI 提供程序错误的解决方式

    问题描述: 在将 SQL Server 2005 运行在独立用户下时,可能出现 WMI 提供程序错误,这会导致无法启动 SQL Server。该问题的原因是 SQL Server 使用了由 Windows 操作系统提供的 WMI 提供程序,但默认情况下,独立用户没有足够的权限从 Windows 操作系统中检索 WMI 数据。因此,需要将独立用户添加到允许检索…

    database 2023年5月21日
    00
  • MySql插入数据成功但是报[Err] 1055错误的解决方案

    关于”MySql插入数据成功但是报[Err] 1055错误的解决方案”,我来给大家详细讲解一下。 首先,[Err] 1055是MySql的错误信息,通常是由于字段数量与值的数量不相等引起的,即你的SQL语句中出现了该错误。 下面,我将提供两个示例来说明该错误及其解决方案。 示例一: 假设我们有一张表,名为users,包含id、name和age三个字段,其中i…

    database 2023年5月18日
    00
  • ubuntu安装mysql数据库方法

    当你使用 Ubuntu 操作系统时,想要安装 MySQL 数据库的话,可以按照以下步骤进行: 步骤一:更新 apt-get 在开始前,我们需要确保 apt-get 工具是最新的。为此,我们可以在终端中输入以下命令: sudo apt-get update 然后按下回车键就可以更新了。稍等片刻,更新就会完成。 步骤二:安装 MySQL 接下来,我们可以输入以下…

    database 2023年5月22日
    00
  • Python对数据库操作

    Python对数据库操作的完整攻略 概述 Python作为一门广泛应用于数据处理领域的编程语言,对于数据库操作的支持也是早已被广泛开发和应用的。通过Python能够方便地进行各类数据库管理,如连接数据库、查询数据、修改数据等。本文将带领读者深入了解Python对数据库操作的完整攻略,供读者参考。 数据库连接 Python涉及到常用的数据库连接有以下几种方式:…

    database 2023年5月22日
    00
  • PHP5.6版本在Windows上安装redis扩展

    PHP使用redis扩展   一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.6-ts-vc11-x64.zip和php_igbinary-1.2.1-5.5-ts-vc11-x64.zip 下载地…

    Redis 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部