java - Azure DevOps“准备对 SonarQube 进行分析”任务对我们的 Azure 托管 SonarQube 服务器失败,并带有 Let's Encrypt 通配符证书
问题描述
在 Windows 托管代理上运行 SonarQube 任务时,我立即收到此错误。
[错误][SQ] API GET '/api/server/version' 失败,错误为:{"code":"UNABLE_TO_VERIFY_LEAF_SIGNATURE"}
该错误显然与此Let's Encrypt 签名说明中讨论的内容有关。
使用该页面上的信息作为指导并尝试解决问题,我在 DevOps 作业中创建了一个前置任务,以将链中的所有证书从我们的通配符添加到 DevOps 代理框中的 Java 密钥库发行人(包括交叉签名人)。我能够做到这一点,但我仍然从后续的声纳任务中得到错误。
当我从代理对 /api/server/version 端点调用 curl 时,我收到错误“curl:(60)SSL 证书问题:无法获取本地颁发者证书”。
据我了解,Sonar 任务将依赖 Java 密钥库,但 curl 不依赖。这使得这两个应用程序似乎都可以工作,我需要在 2 个地方添加这些受信任的证书,但我什至一个都没有找到。谁能指导我解决此问题的说明?
戴夫
更新:意识到“问题”证书可能会有所帮助。你可以在这里得到它的链接
解决方案
我发现这个问题的根源是我需要在 JRE 证书存储中导入 SonarQuBe 证书作为信任证书。
您可以尝试以下步骤:
- 从这里下载密钥库资源管理器
- 打开 $JAVA_HOME/jre/lib/security/cacerts
- 输入密码:changeit(Mac上可以是changeme)
- 导入您的 .crt 文件。
- 保存并替换 cacerts 文件。
推荐阅读
- firebase - Firebase 发件人/服务器密钥更改会影响当前订阅的主题吗?
- coq - 定位战术符号
- r - 如何使用李克特量表项目分析测试前和测试后调查?
- javascript - 如何在for循环中解构嵌套对象
- javascript - knex.js - 迁移最新的“已经是最新的”
- swift - 当 UICollectionViewCell 不在视野范围内时尝试暂停视频
- python - 如果变量在python中设置为true,则装饰文件中的所有函数
- excel - 根据值从另一个工作表复制特定行
- html - `ul` 带有框阴影和 `li` 元素周围的边距
- python - 使用 Visual Studio Code 进行调试时如何设置 Python 解释器选项?