Azure devops - 通用下载 SSL 错误

Azure devops - Universal download SSL error

我使用 azure 通用上传任务将一个 zip 文件上传到 azure artifacts。

我有两个 windows azure 本地代理。我对两者都有完全访问权限。当我使用其中一个代理作为我的发布代理来使用通用上传 azure 任务下载工件时,从工件包提要下载工作正常但在另一个中,我收到错误消息,因为无法获取工件工具。证书链中的自签名证书。

因为我在两个框中都有完全访问权限,我可以做些什么来比较这些框或解决这个问题吗?

1.You可以检查两个自托管代理的版本是否相同。您可以尝试将失败的代理更新到最新版本。

2.Trying 执行此 ticket 中提到的步骤并检查是否可以解决问题。

  • 下载代理的新副本
  • 将您的 CA 证书链放在代理文件夹的根目录下,证书 最好是 .pem
  • 使用 config.cmd --sslcacert ./locationtoyourcert.pem
  • 配置代理

详情请参考这篇blog

@High Lin,我已将你的回答标记为已接受。但我还会添加一些其他步骤来修复此答案,

背景: 使用任何其他 on-prem 框而不是工作时有两个问题。

  1. 尝试下载 Azure Key Vault 用户时出现错误 “self-signed 证书链中的证书”
  2. 当我们尝试从 Azure 工件源下载通用包时 用户看到了同样的错误。

已执行分析。

  1. 验证证书和证书链之间的工作 机器和那个不工作。

  2. 验证机器之间的 azure 代理版本。

3. Verified access on the agents.

4. Verified server properties.
  1. Verified environmental variables.
    

修复:

问题 1:尝试下载 Azure Key Vault 用户时出现错误“self-signed 证书链中的证书” 在意识到 azure key vault 下载是一项 node-based 任务后,发现 CA 证书身份验证在涉及 HTTPS 连接时失败,因为问题是 node.exe 不遵循 windows 证书存储。

所以你可以尝试在 运行 你的 Node.js-based 脚本之前设置一个特定的环境变量:

setx NODE_EXTRA_CA_CERTS "/path/to/your/cert.pem" 请注意 cert.pem 文件可以在 Git.

下的外部文件夹中找到

设置此环境变量后,https 库便可以使用 CA 证书进行身份验证并解析 SSL hand-shake 进程。

注意:可能需要重新启动 windows 服务(Azure 代理)。

问题 2:当我们尝试从 Azure 工件源用户下载通用包时,看到了同样的错误。 下载代理的新副本。

使用 config.cmd --sslcacert ./locationtoyourcert.pem

配置代理

学分: http://lpains.net/articles/2020/azure-devops-agent-behind-proxy/

https://medium.com/@jonatascastro12/understanding-self-signed-certificate-in-chain-issues-on-node-js-npm-git-and-other-applications-ad88547e7028