发布管道开始失败(TLS /证书问题)

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

几天前,我们的几个 Azure 发布管道开始出现故障。

管道部署到我们客户的自托管机器上——测试和生产环境;两条管道都不再工作了。我们没有改变任何管道,客户说他们的基础设施没有任何改变(对此持保留态度,因为我们有一堆自己的自托管机器,部署仍在进行中)。

部署组作业尝试下载工件时发生错误。这就是日志输出的样子:

2024-04-24T01:28:35.4107721Z 错误:在 getBuildApi 中,因此重试 => 待重试:4

2024-04-24T01:29:20.5325958Z 错误:在 getBuildApi 中,因此重试 => 待重试:3

2024-04-24T01:31:35.6424623Z 错误:在 getBuildApi 中,因此重试 => 待重试:2

2024-04-24T01:37:35.7312572Z 错误:在 getBuildApi 中,因此重试 => 待重试:1

2024-04-24T01:43:35.9335199Z ##[错误]getBuildApi 失败 错误:错误:无法验证第一个证书 TLSSocket.onConnectSecure(节点:_tls_wrap:1674:34)位于 TLSSocket.emit (节点:事件:518:28)在 TLSSocket._finishInit (节点:_tls_wrap:1085:8) 在 ssl.onhandshakedone (节点:_tls_wrap:871:12) { 代码: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }

2024-04-24T01:43:36.0200040Z ##[错误]错误:无法验证 第一张证书

到目前为止我们已经尝试过:

  • 在目标计算机上安装所有 Windows 更新。
  • 使用新令牌删除 Azure 代理并重新安装到目标计算机上。
  • 运行 TLS 检查器并应用缓解措施。 https://github.com/microsoft/azure-devops-tls12
  • 在测试环境上设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0,看看是否能通过。确实如此,但我们不能就这样放着不管。
  • 让客户端检查此处的 URL 是否没有被防火墙阻止

关于如何解决这个问题或进一步缩小问题范围有什么想法吗?我们有点困惑为什么我们突然得到一个糟糕的证书。

azure azure-devops
1个回答
0
投票

[错误]错误:无法验证第一个证书

该错误通常是由于证书不受节点信任、证书可能已过期或不受任何证书颁发机构信任而引起。

由于之前有效,请:

  1. 如果您使用本地 DevOps 服务器,请将代理计算机放入具有 DevOps 服务器的

    same domain
    中,然后重新启动代理。

  2. 请重新配置代理,并将证书添加到代理配置中。

步骤如下:

a.将根 CA 的证书导出为

PEM format
证书(在 Windows 上,这是导出证书时的“Base-64 编码 X.506 (.CER)”选项)

b. 配置构建代理:

C:\agent> .\config.cmd --sslcacert <caCertsPath>

这个“caCertsPath”是导出证书的路径。

  1. 如果问题仍然存在,请从之前成功的管道日志中确认工件下载任务版本,并在管道中指定相同版本(仅适用于yaml)进行检查。
© www.soinside.com 2019 - 2024. All rights reserved.