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

移除信任库证书后Java 11 HttpClient仍可访问自签名站点

问题排查方案

以下是针对你遇到的“移除信任库证书后仍能访问自签名站点”问题的具体排查步骤:

  • 确认IDEA实际使用的JDK版本

    • 打开IDEA的File > Project Structure > Project,检查Project SDK是否指向你修改的C:\Users\[username]\.jdks\azul-11.0.16.1
    • 同步检查Modules选项卡下的Module SDK是否与Project SDK一致
    • 查看运行配置:点击顶部运行配置下拉框,选择Edit Configurations,确认Build and run区域的JDK是目标Azul 11版本
  • 检查系统级JDK的信任库

    • Windows系统默认JDK的信任库通常在C:\Program Files\Java\[jdk版本]\lib\security\cacerts,如果之前误将证书导入此处,且IDEA实际使用系统JDK,就会导致证书仍被信任
    • 用keytool验证:打开命令提示符,切换到目标JDK的bin目录,执行命令:
      keytool -list -keystore ..\lib\security\cacerts -storepass changeit
      
      搜索你的站点证书别名,确认是否存在
  • 清理IDEA缓存与运行环境

    • 执行File > Invalidate Caches...,选择Invalidate and Restart,强制清理IDEA缓存后重启测试
    • 若无效,关闭IDEA后手动删除系统缓存目录(默认路径为C:\Users\[username]\.IntelliJIdea[版本号]\system),再重新打开IDEA运行程序
  • 排查代码中的自定义SSL配置

    • 仔细检查代码,确认没有遗留自定义SSL上下文配置(比如之前为绕过证书验证写的代码)
    • 确保HttpClient构建时未设置.sslContext(...)这类自定义信任配置
  • 检查Windows系统证书存储

    • 按下Win+R输入certmgr.msc打开证书管理器
    • 展开受信任的根证书颁发机构 > 证书,搜索你的站点证书。若此处存在该证书,部分JDK版本会优先使用系统证书存储,导致请求仍被信任
  • 验证目标cacerts文件已移除证书

    • 切换到C:\Users\[username]\.jdks\azul-11.0.16.1\bin目录,执行命令:
      keytool -list -keystore ..\lib\security\cacerts -storepass changeit | findstr "你的证书别名"
      
      确认无搜索结果,证明证书已从该信任库移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:40:29