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

Gitlab Pipeline执行Sonarqube测试失败:自签名证书PKIX路径构建错误

问题

在私有网络中部署了Sonarqube(访问地址sonar.localdomain)和Gitlab(访问地址git.localdomain),两者均使用自签名SSL证书。通过Gitlab Pipeline执行Sonarqube测试时,出现以下错误:

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

当前Pipeline配置如下:

sonarqube-check:
  stage: test
  image: 
    name: sonarsource/sonar-scanner-cli:latest
    entrypoint: [""]
  variables:
    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
    GIT_DEPTH: "0"
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
  script:
    - sonar-scanner

解决方案

错误原因是Sonar Scanner依赖的JVM不信任Sonarqube的自签名SSL证书,需将该证书导入JVM的信任存储,修改后的Pipeline配置如下:

sonarqube-check:
  stage: test
  image: 
    name: sonarsource/sonar-scanner-cli:latest
    entrypoint: [""]
  variables:
    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
    GIT_DEPTH: "0"
    SONAR_CERT_PATH: "/tmp/sonar.crt"
    CACERTS_PATH: "/usr/lib/jvm/java-17-openjdk/lib/security/cacerts" # 根据镜像Java版本调整路径
    CACERTS_PASSWORD: "changeit" # JVM默认信任存储密码
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
  script:
    # 1. 获取Sonarqube的自签名证书
    - openssl s_client -connect sonar.localdomain:443 < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${SONAR_CERT_PATH}
    # 2. 将证书导入JVM信任存储
    - keytool -importcert -file ${SONAR_CERT_PATH} -alias sonar-local -keystore ${CACERTS_PATH} -storepass ${CACERTS_PASSWORD} -noprompt
    # 3. 执行Sonar扫描
    - sonar-scanner

额外说明

  • 如果Gitlab的自签名证书也导致代码拉取等环节出现SSL错误,可重复上述步骤导入Gitlab证书,仅需修改openssl命令中的地址为git.localdomain:443,并设置不同的证书别名。
  • 若不确定镜像的Java版本,可在script开头添加java -version命令查看,对应调整CACERTS_PATH(比如Java11的路径通常为/usr/lib/jvm/java-11-openjdk/lib/security/cacerts)。
  • keytool是JDK自带工具,sonarsource/sonar-scanner-cli镜像已预装,无需额外安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:26:21