首页 > 解决方案 > 如何为 Jenkins Kubernetes 插件 SunCertPathBuilderException 创建的 jenkins pod slaves 配置具有可信证书的密钥库

问题描述

我正在使用 Jenkins Kubernetes 插件来配置运行 Java 项目构建管道的不同任务的从属代理 (pod)。

管道阶段之一包括使用 Sonarqube 分析 Java 代码:

try {
    withSonarQubeEnv('SONARQUBE_CFG') {
        sh "./mvnw org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -Dsonar.branch=$branch -Dsonar.verbose=true"
    }
} catch (ex) {
    ex.printStackTrace()
}

问题是我收到 SunCertPathBuilderException 因为它无法验证证书链。

[ERROR] SonarQube server [https://sonarqube.profile.es] can not be reached
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.894 s
[INFO] Finished at: 2018-10-11T16:45:10Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project myproject: Unable to execute SonarQube: Fail to download libraries from server: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

我已经从路径的 jenkins slave pod 中的配置映射中安装了密钥库,/cfg/keystore.jks但无法想出一种方法来强制使用该密钥库。想法?

标签: mavenjenkinskubernetesjenkins-pluginsjenkins-pipeline

解决方案


您的问题不是证书错误。您的服务器根本无法访问。

  • 开了吗?
  • 你能从你的詹金斯服务器/pod ping 它吗?
  • 是否为詹金斯打开了必要的端口才能到达它?(得谷歌这个)

推荐阅读