ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

安装OpenClaw报错“未能创建 SSL/TLS 安全通道”?把 PowerShell 的 iwr 请求改到 TaoToken 的排查记录

安装OpenClaw报错“未能创建 SSL/TLS 安全通道”?把 PowerShell 的 iwr 请求改到 TaoToken 的排查记录 1. 安装 OpenClaw 时 iwr 报“未能创建 SSL/TLS 安全通道”到底卡在哪你在 Windows PowerShell 里敲下iwr -useb https://openclaw.ai/install.ps1 | iex本来想着一路回车把 OpenClaw 装好结果终端直接甩回来一句iwr : 请求被中止: 未能创建 SSL/TLS 安全通道。这句话是 .NET 的HttpWebRequest抛出来的不是 OpenClaw 自己的报错。它说明一件事PowerShell 在跟目标服务器握手时双方没能谈拢用哪个 TLS 版本或者证书链没验过去连接在加密层就被掐断了。iwr是Invoke-WebRequest的别名它底层走的是 .NET 的ServicePointManager而 Windows PowerShell 5.1 默认跑在 .NET Framework 4.x 上这个老框架的默认安全协议往往只开了 SSL3 和 TLS 1.0。现在绝大多数站点早就把 TLS 1.0 关了只留 TLS 1.2 / 1.3于是协商直接失败。这个报错特别容易让人误判。有人以为是网络不通去 ping 域名有人以为是 OpenClaw 的安装脚本坏了反复重下还有人以为是杀毒软件拦了。其实都不是。你可以在同一台机器上用浏览器打开https://openclaw.ai/install.ps1浏览器能正常显示脚本内容因为 Chrome / Edge 自带现代 TLS 栈跟 PowerShell 用的完全不是一套。这就解释了为什么“浏览器能开、命令行不行”。我试过在一台刚装好的 Windows Server 上复现现象一模一样浏览器访问正常iwr必挂。把 TLS 版本显式打开后同一条命令立刻跑通。所以排查方向应该锁定在三个点TLS 协议版本协商、证书链信任、以及 PowerShell 会话的 .NET 运行时配置。这篇记录就按这三条线走顺带把安装脚本里可能触发的模型接口请求也一起理顺让 OpenClaw 的安装流程能真正走完。适合谁看在 Windows 上用 PowerShell 装 OpenClaw、装其他 CLI 工具时遇到同类 SSL/TLS 报错的人以及想把安装脚本里的模型调用指向一个稳定入口、避免再被证书问题绊住的人。下面所有命令都可以直接复制我会标清楚哪条是临时生效、哪条是永久生效。2. 动手前先把 TaoToken 的入口和 Key 准备好OpenClaw 这类工具在安装和首次运行阶段经常会去拉取模型列表或做一次连通性探测。如果这一步的请求地址、密钥、模型 ID 没配好你就算把 TLS 修好了安装脚本跑到后面还是会因为 401 或连接失败中断。所以先把入口统一到 TaoToken后面配置里直接引用省得来回改。TaoToken 在这里扮演的是一个统一的模型调用入口你拿到一个 Base URL 和一个 API Key就能在 OpenClaw、Cline、Codex 这类工具里调用多家模型不用每个工具单独去对接不同厂商的地址和鉴权方式。对安装排障来说好处是请求目标固定、证书链稳定不会因为脚本里写死了某个不稳定域名而反复触发 TLS 问题。你需要准备三样东西我把它叫“三件套”后面配置里会反复出现项目值说明Base URLhttps://taotoken.net/api所有模型请求的统一入口注意结尾不带斜杠API Key在控制台创建形如sk-开头的一串字符只显示一次记得存好Model ID按需选择例如对话类、编码类模型的具体标识填错会报 model not found获取路径很直接打开https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite创建密钥复制保存模型 ID 可以在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite里对照文档确认。如果你只是想先验证通道能不能通可以用https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite里的对话入口手动发一条消息确认 Key 有效。这里有个细节要注意Base URL 用https://taotoken.net/api不要自己加/v1或结尾斜杠不同工具对路径拼接的处理不一样多写一段就可能 404。Key 不要写进会提交到 Git 的文件里本地测试可以用环境变量配置类文件放用户目录下。准备好这三件套之后再回到 TLS 排障。因为后面验证阶段我们会用一条指向 TaoToken 的请求来确认“通道建立成功”这样既验证了 TLS 修复也验证了模型入口可用一举两得。3. 可复制的 PowerShell 配置TLS 版本、证书链与 OpenClaw 安装脚本这一节是核心所有片段都能直接粘贴。先解决 TLS 协商再处理证书链最后把 OpenClaw 安装脚本跑起来并把模型入口指向 TaoToken。3.1 临时启用 TLS 1.2 / 1.3当前会话生效在报错的同一个 PowerShell 窗口里执行[Net.ServicePointManager]::SecurityProtocol [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13如果你用的是 Windows PowerShell 5.1Tls13这个枚举值可能不存在会报“找不到类型”。那就退回多版本兼容写法[Net.ServicePointManager]::SecurityProtocol Tls, Tls11, Tls12执行完再跑一次安装命令iwr -useb https://openclaw.ai/install.ps1 | iex如果这次不再报 SSL/TLS 通道错误说明就是协议版本没开。但临时设置只对当前窗口有效关掉终端就失效所以还需要永久配置。3.2 永久写入注册表让 .NET 默认启用强 TLSWindows PowerShell 5.1 读的是 .NET Framework 的 Schannel 配置。用管理员权限打开 PowerShell执行下面两段分别针对 32 位和 64 位运行时$paths ( HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319, HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319 ) foreach ($p in $paths) { if (-not (Test-Path $p)) { New-Item -Path $p -Force | Out-Null } New-ItemProperty -Path $p -Name SchUseStrongCrypto -Value 1 -PropertyType DWord -Force | Out-Null New-ItemProperty -Path $p -Name SystemDefaultTlsVersions -Value 1 -PropertyType DWord -Force | Out-Null }改完注册表要重启 PowerShell 窗口才生效。这一步做完新开的会话默认就会用系统支持的强 TLS不用每次手动设SecurityProtocol。3.3 证书链排查确认不是中间证书缺失如果 TLS 版本开了还是报同样的错就要看证书链。用下面这条命令单独请求目标地址把异常信息打全try { $r Invoke-WebRequest -Uri https://openclaw.ai/install.ps1 -UseBasicParsing -MaximumRedirection 5 状态码: $($r.StatusCode) } catch { 异常类型: $($_.Exception.GetType().FullName) 异常信息: $($_.Exception.Message) if ($_.Exception.InnerException) { 内层异常: $($_.Exception.InnerException.Message) } }如果内层异常提到RemoteCertificateChainErrors或TrustFailure说明本机根证书库缺东西。可以手动触发一次根证书更新certutil -generateSSTFromWU roots.sst Import-Certificate -FilePath .\roots.sst -CertStoreLocation Cert:\LocalMachine\Root这条会从 Windows 更新拉取受信任根证书列表并导入。企业内网机器如果走了 TLS 检查设备证书链会被替换这种情况需要把内网 CA 根证书导入Cert:\LocalMachine\Root否则任何iwr都会失败。3.4 把 OpenClaw 的模型入口指向 TaoToken安装脚本跑通后OpenClaw 首次启动会读配置文件。不同版本路径略有差异常见的是用户目录下的.openclaw或config目录。下面给一份 JSON 配置片段字段名按常见约定写你对照自己版本的文档微调{ provider: { baseUrl: https://taotoken.net/api, apiKey: sk-你的密钥, model: 你的模型ID, timeout: 60000 }, install: { scriptUrl: https://openclaw.ai/install.ps1, verifyTls: true } }如果你用的是 TOML 风格配置等价写法[provider] baseUrl https://taotoken.net/api apiKey sk-你的密钥 model 你的模型ID timeout 60000注意baseUrl结尾不要加斜杠apiKey和model必须和你在控制台、文档里看到的一致。配置写完后OpenClaw 的模型请求就会走 TaoToken不再依赖脚本里可能写死的旧地址。4. 验证请求确认 TLS 通道建立成功、安装流程继续配置改完不能只看“没报错”要主动验证。下面分三步从 TLS 握手到模型接口逐层确认。第一步验证 TLS 握手本身。用curl.exeWindows 10 1803 之后自带看握手细节curl.exe -v https://openclaw.ai/install.ps1 -o NUL输出里找这几行SSL connection using TLSv1.2或TLSv1.3以及subject:和issuer:证书信息。如果显示SSL certificate verify ok说明证书链没问题。这一步能过iwr基本就不会再报通道错误。第二步验证 OpenClaw 安装脚本能完整下载并执行。先只下载不执行确认内容完整iwr -useb https://openclaw.ai/install.ps1 -OutFile .\install.ps1 Get-Content .\install.ps1 -TotalCount 20看到脚本头部内容正常输出说明下载链路通了。再执行powershell -ExecutionPolicy Bypass -File .\install.ps1安装过程中如果出现模型探测请求观察是否返回 200。如果卡在鉴权回到第 2 节检查三件套。第三步直接验证 TaoToken 入口可用。用一条最小请求确认 Key 和地址正确$headers { Authorization Bearer sk-你的密钥 Content-Type application/json } $body { model 你的模型ID messages ({ role user; content ping }) } | ConvertTo-Json -Depth 5 try { $resp Invoke-RestMethod -Uri https://taotoken.net/api/chat/completions -Method Post -Headers $headers -Body $body 返回内容: $($resp.choices[0].message.content) } catch { 状态: $($_.Exception.Response.StatusCode.value__) 信息: $($_.Exception.Message) }返回里有choices字段和内容说明模型入口通了。如果返回 401是 Key 问题返回 404多半是路径或模型 ID 写错返回reading choices之类的解析错误通常是响应体不是预期 JSON检查 Base URL 是否被工具自动拼了多余路径。三步都过就可以确认TLS 通道建立成功OpenClaw 安装流程能继续模型调用也指向了稳定入口。5. 本篇常见报错对照排查401、local proxy failed、reading choices、OAuth排障最怕报错信息模糊。下面把这类安装场景里高频出现的几条列出来对照着看能省很多时间。401 UnauthorizedKey 无效、过期或者请求头没带上。检查Authorization是不是Bearer开头中间有空格确认 Key 没有多余换行确认用的是当前控制台里有效的 Key。如果刚在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite创建注意复制完整。local proxy failed或proxy connect类错误本机设置了系统代理但代理进程没起来或端口不对。PowerShell 的iwr会读系统代理设置。用netsh winhttp show proxy看当前代理必要时netsh winhttp reset proxy清掉再重试。注意这里说的是本机网络配置层面的排查不涉及任何绕过网络管理的手段。reading choices/cannot read property choices请求发出去了但返回体不是预期的 JSON 结构。常见原因是 Base URL 被工具自动补了/v1或者模型 ID 填成了展示名而不是调用 ID。把baseUrl固定为https://taotoken.net/api模型 ID 对照文档核对。OAuth相关报错某些工具首次登录会走 OAuth 流程如果浏览器回调地址被占用或超时会失败。检查默认浏览器能正常打开回调页端口没被其他程序占用。如果工具支持 API Key 模式优先用 Key少一层交互就少一个故障点。未能创建 SSL/TLS 安全通道反复出现回到第 3 节确认注册表两项都写了、PowerShell 窗口重启过、证书链没有 TrustFailure。企业机器重点查内网 CA 根证书是否导入。The request was aborted: Could not create SSL/TLS secure channel英文版和中文报错同源处理方式完全一样。Invoke-WebRequest : 基础连接已经关闭多半也是 TLS 版本问题按 3.1 临时开启后重试再按 3.2 永久修复。排查顺序建议固定为先看 TLS 版本再看证书链再看代理最后看鉴权和模型 ID。这个顺序从底层往上走能避免在应用层瞎猜。6. 把安装入口固定下来后续少踩坑TLS 这类问题修一次就该固化不要每次开新终端都手动设。注册表那两项写完新会话默认强加密iwr、Invoke-RestMethod、curl.exe都会受益。OpenClaw 的配置里把baseUrl指向https://taotoken.net/apiKey 和模型 ID 用文档里确认过的值安装脚本后续的模型探测就不会再因为地址漂移而失败。如果你后面要长期跑编码类任务或 Agent 流程可以了解下 Coding Plan 这类按周期计费的方式入口在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite只是临时验证模型通不通用模型对话页更轻地址是https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite。接入细节和字段说明统一看文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteKey 管理在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite。最后留一个我踩过的坑改完注册表后没重启终端直接重跑安装还是报同样的错白白多排查了半小时。记住注册表改动只对新开的 PowerShell 会话生效。
返回列表