如何允许 Java 客户端 TLS10 连接?

2023-12-05

在尝试使用 Java 16 在 Eclipse 中执行 hello world MSSQL JDBC 连接时,出现以下错误:

"...server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]..."

经过搜索,我的 Java 客户端在尝试连接到我已弃用的​​ MSSQL 实例时似乎不允许使用此 TLS 版本。我该如何启用它?

以下是我添加 MSSQL JDBC 驱动程序的方法:

  • 下载jar驱动:https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
  • 将 jar 添加到构建路径,在类路径下,java 版本的 jar(上面列出的版本)

TLS 1.0 和 1.1在最新的 Java 版本(OpenJDK 11.0.11 及以上)中默认禁用。因为这些版本的 TLS 随着时间的推移而被削弱,并且缺乏对更强大、更现代算法的支持。

解决方案:

按照 Microsoft 知识库文章修补您的 MSSQL 服务器并在 MSSQL 服务器上启用 TLS1.2:https://support.microsoft.com/en-us/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbe

替代解决方案:(容易存在安全风险)

  1. 通过修改已安装 JDK 的现有 java.security 文件来启用它们,如 Kevin 的回答中所述。
  2. 或者通过覆盖您的特定应用程序的 java.security ,如下所示。(首选)
  • 创建一个名为enableLegacyTLS.security 的文件。
  • 在该文件中,为 jdk.tls.disabledAlgorithms 添加一个条目,其内容与 java.security 文件中的 jdk.tls.disabledAlgorithms 属性相同。
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
 DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,...
  • Remove TLSv1、TLSv1.1、从启用旧版 TLS.security 的列表中。

  • 使用 -Djava.security.properties=path/to/enable Legacy TLS.security 启动应用程序

注意:最后一点,当您使用双等号 (==) 时,您告诉 JVM 忽略默认的 java.security 文件并仅加载此文件。但如果使用单个等号 (=),它会加载您的副本并将其叠加在默认的 java.security 文件上

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何允许 Java 客户端 TLS10 连接? 的相关文章

  • “源兼容性”和“目标兼容性”有什么区别?

    之间有什么关系 区别sourceCompatibility and targetCompatibility 当它们设置为不同的值时会发生什么 根据工具链和兼容性 https docs gradle org current userguide
  • 在不支持 CAS 操作的处理器上进行 CompareAndSet

    今天 我在一次采访中被问到下一个问题 如果您在具有不支持 CAS 操作的处理器的机器上调用 AtomicLong 的compareAndSet 方法 会发生什么情况 您能否帮我解决这个问题 并在可能的情况下提供一些全面描述的链接 From
  • 如何以编程方式使用包含多列的 where-in 子句执行 PostgreSQL 查询?

    我的查询是这样的 select from plat customs complex where code t code s in 01013090 10 01029010 90 它在 psql 控制台中运行良好 我的问题是如何在客户端代码中
  • Java 中的 <-- 是什么? [复制]

    这个问题在这里已经有答案了 我遇到了下面的片段 它输出到4 3 2 1 我从来没有遇到过 lt 在爪哇 Is lt 使 var1 的值变为 var2 的运算符 public class Test public static void mai
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • 未装饰窗户的 Windows Snap 功能?

    有谁知道如何允许未装饰的窗户使用此功能 唯一的选择就是重新实施它 有任何想法吗 谢谢 可停靠可能是唯一的JToolBar http docs oracle com javase tutorial uiswing components too
  • java中如何知道一条sql语句是否执行了?

    我想知道这个删除语句是否真的删除了一些东西 下面的代码总是执行 else 是否删除了某些内容 执行此操作的正确方法是什么 public Deleter String pname String pword try PreparedStatem
  • 维护一组通用的 Eclipse 首选项

    每当我切换工作区 Eclipse 安装时 我都需要复制 重做首选项 编译器设置 字体大小 系列 代码格式化程序 java代码模板 编辑器模板 代码清理 我想以统一的方式维护这些设置 最好是在源代码控制下 我怎样才能做到这一点 我知道创建新工
  • getCurrentSession 在网络中休眠

    我正在使用 hibernate 和 jsp servlet 编写一个基于 Web 的应用程序 我读过有关sessionFactory getCurrentSession and sessionFactory openSession方法 我知
  • 将类转换为 JSONObject

    我有好几堂这样的课 我想将类转换为 JSONObject 格式 import java io Serializable import com google gson annotations SerializedName public cla
  • 2^31 次方的 Java 指数错误 [重复]

    这个问题在这里已经有答案了 我正在编写一个java程序来输出2的指数幂 顺便说一句 我不能使用Math pow 但是在 2 31 和 2 32 处我得到了其他东西 另外 我不打算接受负整数 My code class PrintPowers
  • 模拟器无法加载

    我正在使用 hello android 教程并通过 eclipse 创建 avd 启动模拟器时不使用图像 它只是显示一个黑色的后屏 中间有 ANDROID 字样 并且在 ANDROID 字样的末尾有一个闪烁的光标 我已按照 T 的步骤安装
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • 如何使用 Jersey 将嵌套列表封送为 JSON?我得到一个空数组或一个包含数组的单元素字典数组

    我正在开发一个使用 Jersey 将对象转换为 JSON 的项目 我希望能够写出嵌套列表 如下所示 data one two three a b c 我想要转换的对象首先将数据表示为 gt gt 我认为 Jersey 会做正确的事情 以上输
  • Azure Java SDK:ServiceException:ForbiddenError:

    尝试了基本位置检索器代码 如下所示 String uri https management core windows net String subscriptionId XXXXXXXX 5fad XXXXXX 9dfa XXXXXX St
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • 确定 JavaFX 中是否消耗了事件

    我正在尝试使用 JavaFX 中的事件处理来做一些非滑雪道的事情 我需要能够确定手动触发事件后是否已消耗该事件 在以下示例中 正确接收了合成鼠标事件 但调用 Consumer 不会更新该事件 我对此进行了调试 发现 JavaFX 实际上创建
  • Java 的“&&”与“&”运算符

    我使用的示例来自 Java Herbert Schildt 的完整参考文献 第 12 版 Java 是 14 他给出了以下 2 个示例 如果阻止 第一个是好的 第二个是错误的 因此发表评论 public class PatternMatch

随机推荐

  • 忽略 内的元素以不在点击时导航

    我正在尝试开始删除 btn 它位于 div 内 该 div 包含在react router dom 标记中 我希望能够在单击该 div 时导航到已建立的路径 但如果目标是删除 btn 那么它不应该导航 而只是在删除 btn 内执行 onCl
  • 如何在 Vim(或其他地方)中使用正则表达式搜索十六进制转储?

    我正在寻找一种方法来搜索二进制文件的十六进制转储中一系列十六进制数字的文本表示形式 如下所示 0x000001A0 36 5B 09 76 99 31 55 09 78 99 34 51 49 BF E0 03 0x000001B0 28
  • 绘制多重比较图?

    当一个人希望比较 测试 多个组时 例如 在进行方差分析时 就会面临多重比较的问题 如果我们想绘制比较图 同样适用 我的问题是 您知道哪些工具 在 R 中 可以进行反映多重比较的绘图 目前 我只知道两个 尽管我确信还有更多 TukeyHSD
  • 在 C 中将 char 指针类型转换为 float [重复]

    这个问题在这里已经有答案了 我有一个包含 ff 数据的平面文件 date quantity price item 我想使用以下结构创建数据记录 typedef struct char date item int quantity float
  • 使用 Python 的旧推文 Tweepy

    我正在尝试使用 Python 中的 tweepy 获取较旧的推文数据 大约 2 个月前 我尝试了自始至终的参数 但没有成功 有没有人在 tweepy 或其他 API 中找到解决办法 for id tweet in enumerate twe
  • 如何将布尔值插入数据库

    我必须将用户数据添加到名为 employees 的数据库表中 它有 ID 姓名 姓氏 用户名 密码 电子邮件 地址 管理员权限选项 Administator rigts 是布尔选项 是或否 当我制作一个包含所有数据的表单时 我想通过复选框检
  • 为什么Python无法从PIL导入图像?

    我尝试运行的单行如下 from PIL import Image 无论这看起来多么简单 它都会给出一个错误 Traceback most recent call last File C 2014 10 22 12 49 py line 1
  • 在 SQL Server 中创建审核触发器

    我需要对 SQL Server 2005 数据库中的两个表实施更改跟踪 我需要审核添加 删除 更新 详细说明更新内容 我本来打算使用trigger这样做 但似乎很容易错误地做到这一点 任何人都可以发布一个更新触发器的示例 以优雅的方式成功地
  • C# 如何将两个表达式组合成一个新表达式?

    我有两种表达方式 public static Expression
  • requiredFieldValidator - 因此,如果禁用 Javascript,则可以避免整个 .NET 控件?

    我最近正在使用 NET 并且检查了一些字段 我知道检查是在客户端 javascript 和服务器端进行的 Page Validate if Page IsValid 但如果禁用了 javascript 则所有这些都不会被检查 事实上 当我尝
  • ios 8自定义键盘按住按钮可以删除吗?

    我目前正在构建一个自定义键盘 我快完成了 我遇到的一个问题是删除按钮 当用户点击删除按钮时 它会执行它应该执行的操作并删除先前的文本条目 然而 当用户按住按钮时 什么也没有发生 如何让用户按住删除按钮时 键盘像标准ios键盘一样连续删除 这
  • 为什么延迟求值可以将不纯函数转化为纯函数?

    我知道纯函数是不依赖于系统状态的函数 没有副作用 其输出仅取决于其输入 进行 http 调用被认为是副作用 因此 以下是不纯函数的示例 const httpCall url params gt getJson url params 但是 只
  • pyqtgraph:对齐不同图中x轴的刻度

    这是后续这个问题 问题是当其中一个图重新缩放时如何调整多个 pyqtgraph 的 x 轴缩放 我想要的结果是所有图表的刻度完美对齐 以便您可以直接比较两个图表的内容 给定的答案存档了该任务 即根据变化重新缩放图表 但是当图表的内容不同时
  • 乔达时间:最近一周和一个月

    获取给定日期的最近完整一周和最近完整月份的开始 结束日期的最佳方法是什么 即给定今天的日期 如何找出刚刚完成的一周 一个月也是如此 我得到了解决方案 LocalDate today new LocalDate LocalDate lastW
  • C++ Primer(第 5 版):“16.3 重载和模板”的所有“更专业”示例都是错误的吗?

    C Primer 第 5 版 第 16 3 节 重载和模板 教授在存在候选函数模板实例化的情况下的函数匹配过程 以下是本节中使用的函数模板的声明 using std string template
  • Facebook 开放图谱和元标签

    我有以下输出https developers facebook com tools debug 我添加了locale元标签 因为我有很多无关的财产错误 但这并不能解决问题 Extraneous Property Objects of thi
  • React Native 中的 CameraX 视图 - 无法配置相机

    我正在创建cameraX视图 以便通过桥接来反应本机 普通视图在RN中渲染 桥接流程很好 PreviewView用于显示 CameraX 预览的相机源 我已成功实现预览 但不确定为什么预览未在 UI 上呈现 它只是一个空白屏幕 让我知道 U
  • Django 使用相关实体字段序列化查询集

    我正在尝试加入 2 个实体 从中获取特定字段 然后返回该实体的 JSON 我尝试编写以下代码 import datetime result Foo objects all result result select related bar e
  • 有没有“单项大小的异步任务缓冲区”这样的同步工具?

    在 UI 开发中 我多次以这样的方式处理事件 当事件第一次出现时 我立即开始处理 但如果有一个处理操作正在进行中 我会等待它完成 然后再处理另一个事件 如果在操作完成之前发生多个事件 我只处理最近的一个 我通常的做法是 我的处理方法有一个循
  • 如何允许 Java 客户端 TLS10 连接?

    在尝试使用 Java 16 在 Eclipse 中执行 hello world MSSQL JDBC 连接时 出现以下错误 server selected protocol version TLS10 is not accepted by