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

更新GitLab服务器证书后Jenkins gitlabCommitStatus功能异常未解决

GitLab证书更新后Jenkins代理gitlabCommitStatus功能故障排查方案

更新GitLab服务器证书后,Jenkins代理的gitlabCommitStatus功能停止工作,报错信息如下:

Failed to update Gitlab commit status for project xxxxx: Unable to invoke request: 
javax.net.ssl.SSLHandshakeException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target

已更新代理机器的受信任证书,但问题仍未解决。

  • 确认Jenkins代理使用的JVM证书库
    Jenkins代理可能未使用系统默认证书库,而是依赖自身运行的JRE的cacerts文件。找到代理对应的JRE路径(例如/opt/jdk/jre/lib/security/cacerts),将新GitLab证书导入该文件:

    keytool -import -alias gitlab-new-cert -file /path/to/gitlab.crt -keystore /path/to/jre/lib/security/cacerts
    

    默认密码为changeit,导入完成后重启Jenkins代理服务。

  • 检查GitLab证书链完整性
    确保导入的是完整证书链(包含根证书和中间证书),而非仅服务器证书。可通过openssl s_client -connect gitlab.example.com:443获取完整证书链,将所有证书合并为单个文件后再导入证书库。

  • 验证代理网络访问配置
    若Jenkins代理通过网关/代理服务器访问GitLab,需确认该代理服务器已更新信任新的GitLab证书,排查是否存在证书拦截导致的路径验证失败。

  • 检查gitlabCommitStatus插件配置
    进入Jenkins系统配置页面,确认GitLab服务器URL无误,查看插件是否支持单独指定证书文件,若有则更新为新的GitLab证书。

  • 强制指定JVM证书库路径
    若JVM缓存旧证书未生效,可在Jenkins代理的启动参数中添加-Djavax.net.ssl.trustStore=/path/to/updated/cacerts,强制代理使用更新后的证书库运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:23:03