You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Corretto 11模块构建JRE运行HttpUrlConnection时出现SSL握手失败

问题分析与解决方案

这并非Corretto 11的未修复Bug,核心原因是自定义JRE缺失SSL握手必需的加密模块——完整JDK默认包含所有加密组件,但jlink只会打包你显式指定或代码自动依赖的模块,若SSL相关模块未被纳入,就会触发握手失败。

解决步骤:

  • 补充必要模块到jlink命令:
    运行jlink时,必须显式添加加密相关模块,示例命令:

    jlink --module-path "C:\path\to\corretto-11\jmods;.\your-modules-dir" --add-modules java.base,jdk.crypto.ec,jdk.crypto.cryptoki --output custom-jre
    

    其中jdk.crypto.ec负责椭圆曲线加密(多数现代HTTPS站点依赖),jdk.crypto.cryptoki处理基础加密算法支持。

  • 用jdeps确认依赖模块:
    若不确定程序需要哪些模块,可通过jdeps分析:

    jdeps --list-deps your-application.jar
    

    输出结果中若包含加密相关模块,务必全部加入--add-modules参数。

关于你的疑问:

  1. 并非厂商回退修复:这类问题是Java 9+模块化设计的正常行为,而非Bug。早期Stack Overflow帖子的场景可能是旧版本模块化适配问题,当前Corretto 11已不存在未修复的此类Bug。
  2. 完全可以修复:只要在构建自定义JRE时正确包含所有依赖模块,就能解决SSL握手失败问题,无需等待Java 11的额外修复。

内容的提问来源于stack exchange,提问作者janst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:18:35