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

OpenJDK11下Confluent Maven仓库TLS握手失败拉取依赖报错如何解决

OpenJDK11下Gradle拉取Confluent依赖TLS握手失败解决方法

按以下顺序排查,90%以上的场景前两步就能解决:

1. 验证基础连通性,补全JDK信任证书

先排除证书不信任的问题:

  • 终端执行openssl命令直接测试TLS连通性:
    openssl s_client -connect packages.confluent.io:443 -tls1_2
  • 命令返回完整证书链、退出码为0说明服务端本身没问题;如果报证书验证错误,把Confluent Maven仓库的根证书导入到当前使用的OpenJDK11信任库:
    • 浏览器访问Confluent仓库地址,导出站点的根证书和中级证书,存为本地crt文件
    • 执行keytool命令导入证书(替换成自己的JDK安装路径):
      sudo keytool -import -alias confluent-maven -keystore $JAVA_HOME/lib/security/cacerts -file 你导出的crt文件路径
    • cacerts默认密码是changeit,导入时输入y确认信任即可。

2. 强制Gradle JVM使用兼容TLS配置(最高频解决方案)

OpenJDK11部分小版本默认开启TLS1.3协商、开启SNI扩展,和Confluent仓库的边缘节点兼容性很差,直接在Gradle配置里强制指定参数即可:

  • 单项目生效:在项目根目录的gradle.properties里加如下配置
  • 全局生效:在用户目录下的~/.gradle/gradle.properties里加如下配置
org.gradle.jvmargs=-Xmx2g -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -Djsse.enableSNIExtension=false

配置加完后,强制刷新依赖重新构建:
./gradlew clean build --refresh-dependencies

3. 排查本地网络拦截

如果第二步配置完还是报错,检查本地网络环境:

  • 临时关闭系统代理、VPN、HTTPS抓包工具(比如Charles、Fiddler)、杀毒软件的HTTPS扫描功能,这类工具会中间人替换TLS证书,很容易触发握手失败
  • 如果是公司内网环境,确认防火墙没有拦截到packages.confluent.io的443端口,优先使用公司内部同步的Maven镜像源替换Confluent官方仓库地址,稳定性更高。

4. 升级Gradle版本兜底

你当前使用的Gradle 6.8.3版本内置的HTTP客户端存在TLS协商的已知bug,如果前面的方法都无效,把Gradle升级到7.0及以上稳定版即可。

不要尝试配置TLSv1.1及更低版本协议,Confluent官方仓库早就禁用了这些不安全的旧协议,配置后也无法连通。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:48:30