You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps使用Artifactory服务连接下载制品报x509证书未知签发错误如何解决

Azure DevOps Artifactory服务连接x509证书报错解决方案

报错原文:[error] Post https://art..... : x509 certificate signed by unknown authority

根因说明

该错误本质是Azure DevOps Agent的运行环境无法信任Artifactory服务端使用的TLS证书,通常是证书为自签名证书、企业内部CA签发的自定义证书导致。之前PowerShell脚本能正常运行,一般是因为脚本内置了跳过证书校验的逻辑,或者脚本运行的环境已经提前导入了对应的根证书。

解决方案

场景1:使用自托管Azure DevOps Agent

  • 首先导出Artifactory服务端的完整证书链(包含根CA证书、中间证书,如果有多层签发的话),保存为CER或PEM格式文件
  • 登录自托管Agent所在服务器,将证书导入到系统的受信任的根证书颁发机构存储中,完成后重启Agent服务:
    • Windows系统:双击证书文件,选择「安装证书」→「本地计算机」→「受信任的根证书颁发机构」,按引导完成导入后重启Azure Pipelines Agent服务
    • Linux系统:将证书文件移动到/usr/local/share/ca-certificates/目录下,执行sudo update-ca-certificates命令,再重启Agent进程
    • macOS系统:双击证书文件打开钥匙串访问,将证书的信任策略修改为「始终信任」,再重启Agent进程
  • 测试环境临时方案:可以直接在Artifactory服务连接的配置页开启「忽略SSL证书错误」选项,生产环境不推荐该操作,会降低通信安全性。

场景2:使用微软托管Azure DevOps Agent

微软官方提供的托管Agent不会默认信任用户自定义的证书,需要在流水线执行过程中主动注入证书:

  1. 将导出的Artifactory根CA证书以**安全文件(Secure File)**的形式上传到Azure DevOps项目的「库」中
  2. 在流水线的Artifactory下载任务之前,添加步骤将安全文件中的证书导入到Agent的信任存储:
    • Windows托管Agent执行PowerShell命令:
    $certPath = "$(Agent.TempDirectory)/artifactory-root.cer"
    Import-Certificate -FilePath $certPath -CertStoreLocation Cert:\LocalMachine\Root
    
    • Linux托管Agent执行Shell命令:
    sudo cp $(Agent.TempDirectory)/artifactory-root.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    
  3. 执行后续的Artifactory下载任务即可。

注意事项

  • 导出证书时要导出完整的根证书,不要仅导出站点的叶子证书,否则仍然会触发校验失败
  • 如果Artifactory前端有反向代理/CDN,要导出对外提供服务的域名对应的证书,不要导出后端内部服务的证书

内容的提问来源于stack exchange,提问作者Abhinandan RK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:09:04