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

EKS中Jenkins集成AD遇证书路径错误求助

解决Jenkins在EKS中SSL证书路径验证失败问题

问题分析

从错误日志来看,Jenkins在检查插件更新服务器(updates.jenkins.io)时触发SSL握手失败,提示无法找到有效的证书路径。尽管已指定自定义JKS信任库,但大概率存在以下问题:

  • JKS中未包含目标服务器的完整CA证书链
  • JAVA_OPTS配置未正确生效
  • 信任库文件权限不足
  • 未明确指定信任库类型

解决方案

1. 验证并补充JKS中的证书链

首先确认你的JKS是否包含updates.jenkins.io和AD服务器的CA证书:

  • 进入Jenkins Pod执行证书列表命令:
    keytool -list -v -keystore /var/jenkins_keystore/keystore.jks -storepass changeit
    
  • 如果缺少目标服务器的CA证书,按以下步骤导出并导入:
    1. 导出updates.jenkins.io的证书:
      openssl s_client -connect updates.jenkins.io:443 </dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > jenkins_update_cert.pem
      
    2. 将证书导入JKS:
      keytool -importcert -file jenkins_update_cert.pem -alias jenkins_updates_ca -keystore /var/jenkins_keystore/keystore.jks -storepass changeit -noprompt
      
    3. 重复上述步骤,把AD服务器LDAPS端口的CA证书也导入到同一JKS中。

2. 确认JAVA_OPTS配置生效

  • 进入Pod验证环境变量:
    echo $JAVA_OPTS
    
    确保输出包含完整的信任库配置(建议追加信任库类型参数):
    -Dcasc.reload.token=$(POD_NAME) -Djavax.net.ssl.trustStore=/var/jenkins_keystore/keystore.jks -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=JKS
    
  • 检查Kubernetes Deployment或ConfigMap中的配置是否存在拼写错误,比如路径、密码是否正确。部分Jenkins镜像会追加JAVA_OPTS,需确保没有其他信任库配置覆盖当前设置。

3. 修复信任库文件权限

确保Jenkins运行用户(通常是UID 1000的jenkins用户)能读取JKS文件:

  • 查看文件权限:
    ls -l /var/jenkins_keystore/keystore.jks
    
  • 如果权限不足,在Deployment的securityContext中配置:
    spec:
      template:
        spec:
          securityContext:
            runAsUser: 1000
            fsGroup: 1000
          volumes:
          - name: jenkins-keystore
            secret:
              secretName: jenkins-keystore-secret
          containers:
          - name: jenkins
            volumeMounts:
            - name: jenkins-keystore
              mountPath: /var/jenkins_keystore
              readOnly: true
    

4. 临时禁用更新检查(用于验证)

如果优先解决AD集成问题,可以临时关闭Jenkins更新检查:

  • 通过CASC配置添加:
    jenkins:
      disabledAdministrativeMonitors:
        - "hudson.model.UpdateCenter$CoreUpdateMonitor"
    
  • 或在Jenkins UI的「系统管理」→「管理插件」→「高级」中关闭「自动检查更新」。

总结

最常见的根因是JKS中缺少Jenkins更新服务器和AD服务器的CA证书链,其次是配置未生效或权限问题。按上述步骤逐一排查后,即可解决PKIX路径验证失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:10:48