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

Azure DevOps SQL DB Deploy任务登录阶段失败问题求助

解决Azure DevOps SQL DB Deploy连接Amazon RDS的SSL证书信任问题

问题核心

Azure DevOps代理服务器的受信任根证书存储中缺少Amazon RDS的根CA证书,导致SSL连接时证书链验证失败。即使设置Encrypt=false或TrustServerCertificate=true未生效,大概率是SQL DB Deploy任务的参数优先级覆盖了自定义配置。

解决方案步骤

1. 准备Amazon RDS根CA证书

  • 获取对应RDS区域的根CA证书文件(如rds-ca-2019-root.pem)
  • 将PEM格式转换为Windows兼容的CER格式(针对微软托管代理),执行命令:
    openssl x509 -outform der -in rds-ca-2019-root.pem -out rds-ca-2019-root.cer
    

2. 在流水线中添加证书安装任务

使用PowerShell任务将证书导入代理服务器的受信任根证书存储:

# 假设证书已上传至流水线安全文件或代码仓库路径下
$certFilePath = "$(System.DefaultWorkingDirectory)/rds-ca-2019-root.cer"
Import-Certificate -FilePath $certFilePath -CertStoreLocation Cert:\LocalMachine\Root
  • 若使用自托管代理,可手动在代理服务器上安装证书,无需每次流水线运行重复执行

3. 配置SQL DB Deploy任务参数

  • 在任务的Connection String中显式设置:Server=[RDS端点];Database=[库名];User ID=[账号];Password=[密码];Encrypt=True
  • 在Additional Arguments中添加强制加密参数:/p:EncryptConnection=True
  • 移除TrustServerCertificate=true配置,确保证书链正常验证

4. 排查无效配置的常见原因

  • Encrypt=false未生效:SQL DB Deploy任务可能强制启用加密,建议保留加密并解决证书信任问题
  • TrustServerCertificate=true未生效:任务内部参数覆盖了连接字符串设置,需在任务的Additional Arguments中添加/p:TrustServerCertificate=True(仅临时测试用,不建议长期使用)
  • 确认代理服务器可访问RDS对应端口(如SQL Server用1433,MySQL用3306)

内容的提问来源于stack exchange,提问作者Hugo Melo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:33:26