【问题标题】:Azure DevOps "Prepare analysis on SonarQube" task fails against our Azure hosted SonarQube server with a Let's Encrypt wildcard certAzure DevOps“准备对 SonarQube 进行分析”任务对我们的 Azure 托管 SonarQube 服务器失败,并带有 Let's Encrypt 通配符证书
【发布时间】:2019-08-13 15:59:07
【问题描述】:

在 Windows 托管代理上运行 SonarQube 任务时,我立即收到此错误。

[错误][SQ] API GET '/api/server/version' 失败,错误为:{"code":"UNABLE_TO_VERIFY_LEAF_SIGNATURE"}

该错误显然与Let's Encrypt signing explanation 中讨论的内容有关。

使用该页面上的信息作为指导并尝试解决问题,我在 DevOps 作业中创建了一个前置任务,以将链中的所有证书添加到 DevOps 代理框中的 Java 密钥库我们对发行人的通配符(包括交叉签名人)。我能够做到这一点,但我仍然从后续的声纳任务中得到错误。

当我从代理对 /api/server/version 端点调用 curl 时,我收到错误“curl:(60) SSL 证书问题:无法获取本地颁发者证书”。

据我了解,Sonar 任务将依赖 Java 密钥库,但 curl 不依赖。这使得这两个应用程序似乎都可以工作,我需要在 2 个地方添加这些受信任的证书,但我什至一个都没有找到。谁能指导我解决此问题的说明?

戴夫

更新:意识到“问题”证书可能会有所帮助。你可以在这里得到它link

【问题讨论】:

  • 您需要将所有密钥注册到密钥库。看看here
  • 谢谢杰罗恩。我正在这样做,但它并没有解决问题。尽管我确实找到了解决方案,但我很高兴地报告,如果有人像我一样做同样愚蠢的事情,这里是总结。真正的问题是我用于基于 apache 的站点的 server.crt 只有通配符证书。它还需要有到 Let's Encrypt 发行者的链。添加后,我的问题就解决了。

标签: java ssl sonarqube azure-devops lets-encrypt


【解决方案1】:

我发现这个问题的根源是我需要在 JRE 证书存储中导入 SonarQuBe 证书作为信任证书。

您可以尝试以下步骤:

  1. here下载keystore explorer
  2. 打开 $JAVA_HOME/jre/lib/security/cacerts
  3. 输入密码:changeit(在 Mac 上可以是 changeme)
  4. 导入您的 .crt 文件。
  5. 保存并替换 cacerts 文件。

【讨论】:

    猜你喜欢
    • 2020-02-20
    • 2021-12-23
    • 2020-05-13
    • 2021-08-30
    • 2021-04-14
    • 2020-07-05
    • 2021-04-03
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多