PowerShell WebRequest脚本切换HTTPS后无法创建SSL/TLS安全通道
问题根因
报错核心是TLS协议版本不匹配,附带原脚本的代码笔误问题:
- PowerShell 5.1调用.NET Framework内置的
WebRequest组件发起HTTPS请求时,默认仅启用SSL 3.0、TLS 1.0这类已经被淘汰的旧安全协议,不会主动使用TLS 1.2发起握手。当前部署的HCL Domino服务端已强制要求TLS 1.2连接,会直接拒绝旧版SSLv3的连接请求,正好对应两边的报错信息:TLS/SSL connection failed with rejected SSLv3 connection
Exception calling "GetResponse" with "0" argument(s): "The request was aborted: Could not create SSL/TLS secure channel." - 浏览器访问HTTPS资源正常,是因为浏览器自身的TLS协议配置和PowerShell/.NET的配置完全独立,浏览器默认开启TLS 1.2支持,不会影响PowerShell的默认请求行为。
- 原脚本存在代码笔误:第二次重试请求时调用了从未定义过的变量
$HTTP_Request2,就算TLS问题修复,运行到这行也会抛出变量不存在的错误。
可落地修复方案
所有修改都在脚本内完成,不需要调整服务器系统配置,无副作用:
- 第一步:在脚本所有Web请求逻辑的最开头,加一行配置,强制当前PowerShell会话的Web请求使用TLS 1.2协议:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
注意:这行配置仅对当前脚本运行的单次PowerShell会话生效,不会修改系统全局设置
- 第二步:把脚本内所有检测URL的前缀统一从
http://改为https://,同时修正原脚本的变量笔误,将错误的$HTTP_Request2.GetResponse()替换为$HTTP_Request.GetResponse() - 第三步(可选优化):原脚本两次重试无间隔、未主动释放HTTP连接资源,长期运行可能出现资源泄漏,可直接替换为逻辑更严谨的完整检测脚本:
# 强制当前会话使用TLS 1.2协议 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $checkUrl = 'https://myserver/path-to/ressource/' $maxRetryCount = 2 $retryWaitSeconds = 2 $requestTimeoutMs = 5000 $siteAvailable = $false for ($i = 0; $i -lt $maxRetryCount; $i++) { try { $request = [System.Net.WebRequest]::Create($checkUrl) $request.Timeout = $requestTimeoutMs $response = $request.GetResponse() $statusCode = [int]$response.StatusCode $response.Close() # 主动释放连接资源,避免泄漏 if ($statusCode -eq 200) { Write-Host -ForegroundColor Green "Site " $request.RequestUri " is OK!" $siteAvailable = $true break } } catch { Write-Host "第 $($i+1) 次检测失败:$($_.Exception.Message)" if ($i -lt $maxRetryCount - 1) { Start-Sleep -Seconds $retryWaitSeconds } } } if (-not $siteAvailable) { Write-Host "The Site may be down, please check!" # 在此处保留原有管理员告警邮件发送逻辑即可 }
验证步骤
- 先在服务器上手动运行修改后的脚本,确认不再报SSL/TLS相关错误,站点正常时输出绿色OK提示,同时Domino控制台不再出现SSLv3连接被拒的日志
- 手动测试通过后,触发任务计划程序配置的批处理任务,确认任务运行账号有足够权限执行脚本,没有异常报错即可正式投入使用
内容的提问来源于stack exchange,提问作者Lothar Mueller
相关产品推荐
相关产品推荐

