Gitlab Pipeline 未能通过使用自签名证书的 Sonarqube 测试

问题描述 投票:0回答:1

我有一个 Sonarqube 安装,只能在专用网络中访问。假设 URL 是:sonar.localdomain,我的 Gitlab 位于:git.localdomain。它们都使用自签名 SSL 证书。

当我运行 Gitlab 管道进行 Sonarqube 测试时,我得到以下信息(这是正确的):

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

这就是我的管道的样子:

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

我该如何修复它?

提前致谢!

gitlab sonarqube self-signed
1个回答
0
投票

我通过将证书放置在运行者的映像上解决了这个问题(运行者使用 AWS AMI 来启动服务器)。

然后我将 Sonarqube 管道脚本更新为:

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
  before_script:
    - keytool -import -alias sonar -storepass changeit -noprompt -keystore /usr/lib/jvm/java-17-openjdk/lib/security/cacerts -file /path/to/self-signed-sonarqube-cert.pem
  script:
    - sonar-scanner

注意:cacerts 路径可能与您不同。搜索 JAVA_HOME 环境变量的设置,然后将其附加到 /lib/security/cacerts

© www.soinside.com 2019 - 2024. All rights reserved.