Java 11 + Chrome/Firefox = TLS 解密错误

2024-03-17

我目前正在将一些服务器软件从 Java 8 迁移到 Java 11。除了当我的服务器在 Java 11(且仅 11)上运行时 TLS 连接被拒绝这一事实之外,一切工作正常。也就是说,在 Java 10 及以上版本上运行时一切正常。一旦我切换到 Java 11(当然,中间绝对没有代码更改),我就会收到 TLS 解密错误。当我禁用 SSL/TLS 或使用 IE/Edge 连接到我的服务器(通过 TLS)时,我的应用程序工作正常。当使用 Chrome 70 或 Firefox 62 时,我得到ERR_SSL_PROTOCOL_ERROR or SEC_ERROR_BAD_SIGNATURE, 分别。

我尝试使用 WireShark 来分析这一点(请参阅我的dump https://nofile.io/f/dTZzcTfAzsT)。我的结论是,Java 11 和 Chrome/Firefox 协商了一个错误的密码套件 (rsa_pss_rsae_sha256),该套件在某种程度上不适用于 Java 11。Java 8 和 IE/Edge 似乎协商了一个不同的密码套件 (rsa_pkcs1_sha256),但该套件有效。

有人知道如何解决这个问题或至少暂时解决它(当然,除了禁用 SSL/TLS 或使用 IE/Edge)?提前致谢。


这可能是 TLS 1.3 中新 PSS 算法的兼容性故障。您可以阅读关于引入 PSS 背后推理的很好的解释here https://crypto.stackexchange.com/a/58708.

在修复之前,您可以通过编辑来阻止服务器协商 TLS 1.3lib/security/java.security并将 TLSv1.3 添加到jdk.tls.disabledAlgorithms财产。

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

Java 11 + Chrome/Firefox = TLS 解密错误 的相关文章

随机推荐

  • 在 mysql 更新查询中查找受影响的字段

    我这里有一个复杂的问题 假设我的表中有 5 个字段 而我的一个用户在运行 mysql 更新查询的表单的帮助下仅更新了 2 个字段 那么有什么办法可以查出哪两个字段被改变了 好吧 我不确定这是否是最好的方法 但它会起作用 请注意 语法适用于
  • 将通用列表数组绑定到 GridView

    您好 我有一个返回 问题 数组的列表 我的问题是如何将其绑定到网格视图 当我尝试调用 Question Ordinal 时 我发现它在数据源中不存在 我正在使用以下代码 GridView1 DataSource myList GetQ Gr
  • 堆栈在缓存中吗?

    在现代计算机中 我知道当前代码区域位于高速缓存中 然而 在许多计算机语言实现中 本地 自动 变量将位于堆栈上 因此会对堆栈进行大量内存访问 在正常架构中 堆栈是否位于另一个缓存中 如果不是 则假设堆栈可以重新定位到 本地 即非常靠近当前代码
  • chrome 扩展:页面完成加载 javascript 后运行脚本

    当页面完成加载时 这根本不会触发 基本上 当我单击浏览器操作按钮时 它会触发它 并且在页面加载时 它将运行一个脚本 在我的background js中 var toggle false chrome browserAction onClic
  • 如何使用 JMeter 发送动态 URL 参数

    我想将 URL PATH 发送为 controller 1 1 controller 2 2 start 但是参数 2controller 2是动态的 如何发送该参数 使参数成为变量 controller 2 controller2 par
  • 使用 swift for Mac 应用程序获得管理权限

    我正在编写一个软件 需要经常以root权限运行命令 现在 我通过询问用户一次密码 保存密码 然后将该密码提供给NSAppleScript作为参数with administrator privileges 这显然对用户来说确实不安全 因为有人
  • 使用 Obj-C 的帖子发送 amp (&)

    我正在发送包含文本 数字和数据的帖子 数字和数据工作正常 但我在文本方面遇到问题 因为它可能包含与号 例如 page php text Hello World Space 现在我发现 被服务器接收到 但读起来就像一个新变量开始一样 所以它看
  • pyqtdeploy:无法检测到 MSVC2015 或 MSVC2017

    我第一次尝试 pyqtdeploy 遵循文档 https www riverbankcomputing com static Docs pyqtdeploy demo html 运行 build demo py 时出现以下错误 C User
  • 将phoneGap 与本机iOS 应用程序集成

    我正在尝试创建一个使用本机功能和phoneGap 框架组合的应用程序 本机应用程序有一个按钮 单击该按钮后 phoneGap ui 必须添加到视图中 有什么办法可以实现这一点吗 有相同的教程吗 是的 这是可能的 尽管您可能会让自己陷入一些头
  • 如何确定我是否在 Android Wear 中运行?

    我在 Android Studio 中有一个移动和穿戴模块 它们都使用 核心 代码库 在该核心代码中 我如何确定我的代码是否在 移动 模块的 穿戴 上运行 我应该使用屏幕尺寸吗 尽管这没有正式记录 据我所知 您可以通过调用以下任一方法来确定
  • 使用 pyautogui 输入 unicode 字符串

    我正在创建一个自动测试应用程序pyautogui库 我想用typewrite将文本输入到表单中的方法 但我的一些输入字符串中含有 unicode 字符 例如 N st 根据文件typewrite只能按单字符键 所以它只是忽略了 特点 您能建
  • 使用 EC2 + Rails + Nginx + Capistrano 重新启动时 Puma 重新启动失败

    我已成功使用 capistrano 将我的 Rails 应用程序部署到 Ubuntu EC2 部署时一切都运行良好 Rails 应用程序名称是 deseov12 我的问题是 Puma 不会在启动时启动 这是必要的 因为生产 EC2 实例将根
  • 如何为其他类成员函数编写模板包装方法?

    我尝试为具有不同参数的不同函数创建一个模板化包装器 设置是一个类A基本实现有两种方法foo and bar 另一堂课B应包装这些方法并添加新功能 以下链接中的解决方案对于非类函数非常有效 c 11 模板化包装函数 https stackov
  • 如何使用 JavaScript 添加到现有的 dataTransfer.files 对象?

    我正在创建一个拖放文件上传区域 当我一次上传多个文件时 它可以工作 但我需要它能够支持分多个阶段上传 我知道下面的问题是我每次都设置文件 但我无法找出每次调用该方法时将更多文件添加到 dFiles 的正确方法 var dFiles var
  • openssh/opensshportable,我应该从内存中提取哪个密钥?

    我想在 OpenNebula 等虚拟环境中解密 ssh 流量 为此 我从 openssh opensshportable 代码的 key derive keys 函数中提取了 6 个 ssh 密钥 IV 加密密钥和完整性密钥 如果我跟踪服务
  • 如何向 PHP SoapVar 对象添加属性?

    如何向 PHP SoapVar 对象添加属性 PHP5 SoapClient SoapVar 我有一个 SOAP 客户端请求情况 其中有重复的部分 答案 每个部分都有一个问题和选择 这是测验评分过程的一部分 根据我在 PHP5 SOAP 客
  • 如何使用 C# 驱动程序更新 MongoDB 中数组子文档中包含的数组子文档中的字段?

    我在 MongoDB 中有一个文档集合 其结构如下 有多个容器文档 每个包含Sessions 每个会话包含1个Order 每个Order包含多个Item Sessions ID 1882a092 d395 45d1 b36b e2fa3df
  • std::decay 和 std::remove_cvref 之间的区别?

    Does std remove cvref代替std decayC 20之后 From 这个链接 https github com thecppzoo zoo issues 7 我无法理解这意味着什么 C 20将有一个新特征std remo
  • 使用 Hammer.js 进行事件委托

    我如何在 Hammer js 中使用纯 JavaScript 进行 jQuery 风格的事件委托 例如 Hammer document on tap item function console log tapped 这是直接可行的还是我必须
  • Java 11 + Chrome/Firefox = TLS 解密错误

    我目前正在将一些服务器软件从 Java 8 迁移到 Java 11 除了当我的服务器在 Java 11 且仅 11 上运行时 TLS 连接被拒绝这一事实之外 一切工作正常 也就是说 在 Java 10 及以上版本上运行时一切正常 一旦我切换