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

VSTS部署至本地IIS服务器遇SSL/TLS安全通道创建失败问题

解决VSTS部署组脚本中SSL/TLS安全通道创建失败的问题

这个错误我之前帮不少团队排查过,核心原因几乎都是PowerShell默认使用的TLS版本过低,而现在VSTS(也就是现在的Azure DevOps)已经不再支持TLS 1.0/1.1这类旧协议了。下面是一步步的解决方法:

1. 强制PowerShell使用TLS 1.2

在运行部署组脚本之前,先在PowerShell里执行这条命令,或者直接把它加到脚本的最开头:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

这条命令会强制当前PowerShell会话使用TLS 1.2建立SSL连接,直接解决协议不兼容的问题。

2. 配置系统级的强加密协议(推荐持久化解决)

如果不想每次运行脚本都手动设置TLS,可以修改Windows注册表让整个系统的.NET应用默认使用强加密:

  • 打开管理员PowerShell,运行以下命令添加注册表项:
    # 64位系统设置
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value 1 -Type DWord
    # 32位兼容设置
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value 1 -Type DWord
    
  • 重启PowerShell或者服务器,让设置生效。

3. 代理环境下的额外配置(如果你的服务器在代理后)

如果部署服务器需要通过代理访问VSTS,还要确保PowerShell能正确走代理:

  • 在脚本里添加代理配置(替换成你的代理地址和端口):
    $proxyServer = "http://your-proxy-address:port"
    $proxy = New-Object System.Net.WebProxy($proxyServer, $true)
    [Net.WebRequest]::DefaultWebProxy = $proxy
    
  • 同时确认代理服务器允许访问VSTS的域名(比如dev.azure.com或者旧的*.visualstudio.com)

4. 其他排查点

  • 检查PowerShell版本:如果是PowerShell 2.0,它不支持Tls12枚举,需要升级到PowerShell 5.1(Windows系统默认自带,或者手动更新)。
  • 验证系统时间:服务器的系统时间和时区必须正确,证书验证对时间敏感,时间偏差过大也会导致SSL连接失败。

做完这些步骤后,再以管理员身份重新运行部署组脚本,应该就能成功创建部署组了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:43:38