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

无法从Jenkins部署Azure云服务,执行Get-AzureDeployment遇SSL/TLS错误

解决Azure PowerShell部署时的SSL/TLS安全通道错误

我来帮你搞定这个SSL/TLS的问题,这个错误很常见,主要是协议版本不兼容或者设置时机不对导致的,咱们一步步来修复:

1. 调整TLS设置的执行顺序(最关键的一步)

你原来的脚本里,是先导入发布设置、设置订阅,再设置TLS协议——这就晚了!Import-AzurePublishSettingsFile命令在执行时就会和Azure服务建立连接,这时候还没切换到TLS 1.2,自然会用旧协议触发错误。

正确的顺序应该是先设置TLS协议,再执行任何Azure相关命令:

# 优先设置TLS 1.2(Azure当前只支持这个版本的安全协议)
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12

# 再导入发布设置文件
Import-AzurePublishSettingsFile -PublishSettingsFile "C:\Temp\CloudFareABTPublishSettings.publishsettings"

# 设置目标订阅
Set-AzureSubscription -SubscriptionName "CloudFare ABT Test"

# 最后执行部署查询命令
Get-AzureDeployment -ServiceName "你的云服务名称"

2. 简化TLS协议的取值

你原来的脚本里把Tls、Tls1和Tls12都加进去了,但Azure现在已经不再支持Tls和Tls1这些旧版本的协议,只保留TLS 1.2的支持。多添加旧协议反而可能干扰连接,直接只设置Tls12就够了。

3. 检查并升级Azure PowerShell模块

如果你用的是旧版的Azure PowerShell模块(不是Az模块),它对TLS 1.2的支持可能不完善。建议:

  • 打开PowerShell,执行Get-Module -ListAvailable Azure查看版本,如果版本低于3.8.0,赶紧升级到最新版
  • 长远来看,建议迁移到Az模块(Azure模块已经被官方弃用,不再更新),Az模块对现代安全协议的支持更好

4. 配置系统级的强加密设置

如果上面的步骤还没解决问题,可能是你的机器(本地和Jenkins服务器)的.NET Framework默认没有启用强加密协议。可以通过注册表修改:

  • 打开注册表编辑器,定位到HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
  • 新建一个名为SchUseStrongCrypto的DWORD值,设置为1
  • 同样在HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319路径下,重复上面的操作
  • 修改后重启PowerShell或者Jenkins服务,让设置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:09:28