在Azure服务器安装Build Agent时报SSL连接无法建立错误
Azure自托管Build Agent安装SSL报错解决方案
该报错本质是安装代理的服务器无法信任Azure DevOps服务端返回的SSL证书,你之前的操作未生效的原因是没有解决根证书信任链断裂的核心问题,可按以下步骤排查:
- 排查系统根证书完整性
- Windows服务器:运行
certlm.msc打开本地计算机证书管理器,定位到「受信任的根证书颁发机构\证书」路径,确认Azure DevOps使用的DigiCert、Baltimore根证书是否存在,缺失的话可从正常运行的服务器导出对应证书导入即可。 - Linux服务器:执行对应发行版的根证书更新命令,Ubuntu/Debian运行
sudo update-ca-certificates,CentOS/RHEL运行sudo update-ca-trust force-enable && sudo update-ca-trust extract,确保系统内置根证书为最新版本。
- Windows服务器:运行
- 修正SSL跳过验证参数的使用方式
如果你用的是私有部署的Azure DevOps Server,--sslskipcertvalidation参数需要放在配置命令的末尾才能生效,正确参考命令如下:# Windows版本 .\config.cmd --unattended --url https://你的DevOps服务地址 --auth pat --token 你的PAT令牌 --pool 代理池名称 --agent 节点名称 --work _work --sslskipcertvalidation # Linux版本 ./config.sh --unattended --url https://你的DevOps服务地址 --auth pat --token 你的PAT令牌 --pool 代理池名称 --agent 节点名称 --work _work --sslskipcertvalidation - 排查网络中间设备干扰
确认报错服务器和DevOps服务端之间是否有防火墙、WAF、正向代理等设备开启了SSL解密功能,这类设备会替换服务端返回的证书,导致信任校验失败。你可以运行curl -v https://你的DevOps服务地址查看返回的证书颁发者,和正常安装代理的服务器返回的证书对比,存在差异的话需要把中间设备的解密证书导入到报错服务器的受信任根证书存储区,或者把DevOps域名加入SSL解密白名单。 - 自签证书适配注意事项
你之前生成的自签证书需要部署在DevOps服务端,同时要把自签证书的根证书导入到所有安装代理的服务器的受信任根证书区,Linux服务器还要额外确认dotnet运行时已经加载了新增的根证书。
内容的提问来源于stack exchange,提问作者SRP
相关产品推荐
相关产品推荐

