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

Ubuntu+OpenJDK11环境Jenkins CLI报SSLHandshakeException证书错误如何解决

问题根因

这个报错本质是OpenJDK的信任证书库中没有你访问的Jenkins站点对应的SSL根证书,无法完成证书链校验。重装ca-certificates-java仅会更新公共可信CA的证书,如果目标站点使用自签证书、企业私有CA签发的证书,就不会被默认信任库收录,因此重装命令无法解决问题。

排查步骤
  • 首先校验目标站点的证书链状态,执行以下命令拉取站点证书信息:
    openssl s_client -connect [website_name]:443 -showcerts < /dev/null
    
    检查返回结果中的证书链,确认是否为自签证书、私有CA签发证书,或者存在证书链不完整的问题。
  • 校验OpenJDK 11的信任库中是否已存在对应证书:
    Ubuntu系统默认安装的OpenJDK 11信任库路径为/etc/ssl/certs/java/cacerts,默认访问密码为changeit,执行以下命令检索:
    keytool -list -keystore /etc/ssl/certs/java/cacerts -storepass changeit | grep -i [站点证书主体/颁发机构关键词]
    
  • 排查WSL特有问题:WSL可能存在系统时间与宿主机不同步的情况,会导致证书有效期校验失败,执行以下命令同步时间后重试:
    sudo hwclock -s
    
解决方案

方案1:全局导入证书(推荐)

  1. 从openssl命令返回的结果中,提取目标站点的根证书内容(-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----之间的内容),保存为jenkins-root.crt文件。
  2. 执行以下命令将证书导入OpenJDK全局信任库:
    sudo keytool -import -alias jenkins-custom-ca -file jenkins-root.crt -keystore /etc/ssl/certs/java/cacerts -storepass changeit
    
  3. 出现信任确认提示时输入yes,完成导入后重试Jenkins命令即可。

方案2:命令行指定自定义信任库

如果不想修改全局信任库,可以单独为本次命令指定信任库参数:

java -Djavax.net.ssl.trustStore=/path/to/your/custom/cacerts -Djavax.net.ssl.trustStorePassword=changeit -jar jenkins-cli.jar -s https://[website_name] get-job job_xxx > myjob.xml

方案3:临时跳过证书校验(仅排查用,不建议生产环境使用)

可以通过参数直接关闭证书校验,快速验证是否为证书问题导致的报错:

java -jar jenkins-cli.jar -noCertificateCheck -s https://[website_name] get-job job_xxx > myjob.xml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:36:03