powershell:Invoke-WebRequest : 请求被中止: 未能创建 SSL/TLS 安全通道

本文介绍了一个Powershell使用Invoke-WebRequest时遇到的SSL/TLS安全通道错误,并提供了解决方案,只需一行代码即可修复问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在用powershell 的Invoke-WebRequest下载文件时报错了:

Invoke-WebRequest : 请求被中止: 未能创建 SSL/TLS 安全通道。

很快在网上找到了答案:
《PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法》

只是加了一行代码:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

不过是用csharp代码写的,powershell的写法如下,即解决问题:

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

参考资料:

https://stackoverflow.com/questions/41618766/powershell-invoke-webrequest-fails-with-ssl-tls-secure-channel

PS C:\Users\29386\segment-anything\Grounded-Segment-Anything\CARLA> Invoke-WebRequest -Uri "https://carla-releases.s3.eu-west-3.amazonaws.com/Windows/CARLA_0.9.14.zip" ` >> -OutFile "CARLA_0.9.14.zip" ` >> -MaximumRedirection 10 ` # 增加重定向次数 Invoke-WebRequest : 远程服务器返回错误: (301) 已移动的永久重定向。 所在位置 行:1 字符: 1 + Invoke-WebRequest -Uri "https://carla-releases.s3.eu-west-3.amazonaws ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebExce ption + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand PS C:\Users\29386\segment-anything\Grounded-Segment-Anything\CARLA> -UseBasicParsing ` # 避免解析错误 -UseBasicParsing : 无法将“-UseBasicParsing”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果 包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 19 + -UseBasicParsing ` # 避免解析错误 + ~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (-UseBasicParsing:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS C:\Users\29386\segment-anything\Grounded-Segment-Anything\CARLA> -TimeoutSec 1800 -TimeoutSec : 无法将“-TimeoutSec”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径, 请确保路径正确,然后再试一次。 所在位置 行:1 字符: 19 + -TimeoutSec 1800 + ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (-TimeoutSec:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
最新发布
07-29
<think>好的,用户的问题是关于如何通过命令行创建目录结构、拉取远程文件,并启动Docker容器的。用户提到了使用mkdir、New-Item、Invoke-WebRequest以及docker compose up。我需要先理解用户的具体需求,然后逐步分解步骤。 首先,用户可能是在Windows环境下操作,因为提到了New-Item和Invoke-WebRequest,这些是PowerShell的cmdlet。但用户也可能对跨平台的方法感兴趣。不过根据引用的内容,用户之前提到了Docker Toolbox、WSL配置等,可能是在Windows中使用Docker,可能需要区分PowerShell和传统的CMD。 接下来,创建多级目录。在PowerShell中,可以用New-Item -ItemType Directory加上-Path参数,或者使用mkdir -Force来递归创建目录。需要确保路径正确,比如项目根目录下的子目录,比如app、config等。 然后,下载docker-compose.yml文件。用户想用Invoke-WebRequest,也就是PowerShell的curl别名。需要确保URL正确,并且保存路径正确,可能需要指定-OutFile参数。同时,可能需要处理SSL/TLS证书问题,比如使用-UseBasicParsing参数绕过某些错误。 接着,运行docker compose up。需要确认用户是否已经安装了Docker Desktop或者Docker Engine,并且Docker服务正在运行。如果是较新的Docker版本,应该支持docker compose作为插件,即使用docker compose up命令。如果是旧版本,可能需要docker-compose单独的命令,但用户的问题中写的是docker compose up,所以假设使用的是新版本。 同时,需要考虑到用户权限问题,比如是否需要以管理员权限运行PowerShell。另外,目录的权限是否允许Docker挂载卷,尤其是在Windows中使用Linux容器时,可能需要配置文件共享设置。 还要注意路径中的反斜杠和正斜杠问题,在PowerShell中可以使用正斜杠或者双引号包裹路径。例如,-Path "project_root/app"。 另外,用户可能需要验证docker-compose.yml文件是否正确下载,是否存在语法错误,导致容器启动失败。可以在步骤中加入检查文件的步骤,比如查看内容或者执行语法检查。 最后,是否需要后续步骤,比如访问应用程序,查看容器日志等,可能需要给出相关命令,如docker compose logs。 现在,结合引用内容,用户可能已经安装了Docker Desktop,或者通过WSL配置了Docker环境。根据引用[3],用户可能在WSL中配置了DOCKER_HOST环境变量,所以需要确保命令行环境正确指向Docker守护进程。例如,在PowerShell中可能需要设置$env:DOCKER_HOST,或者在WSL中已经配置好了。 综上所述,步骤大致如下: 1. 创建目录结构。 2. 下载docker-compose.yml。 3. 运行docker compose up。 需要详细写出每个步骤的具体命令,并说明注意事项,比如权限、路径、Docker服务状态等。同时,提供验证步骤,确保各环节正确执行。</think>### 分步教程:通过命令行创建目录并启动Docker容器 #### 1. 创建多级目录结构 在Windows PowerShell中,可使用以下命令创建多级目录: ```powershell # 创建项目根目录及子目录(app、config等) New-Item -ItemType Directory -Path "project_root/app" -Force New-Item -ItemType Directory -Path "project_root/config" -Force ``` 或使用简化的`mkdir`命令: ```powershell mkdir -Force project_root/app, project_root/config ``` - **注意**:`-Force`参数会强制创建父目录(若不存在)[^3]。 --- #### 2. 下载远程docker-compose.yml文件 通过`Invoke-WebRequest`下载文件: ```powershell # 进入项目根目录 cd project_root # 下载docker-compose.yml文件(替换为实际URL) Invoke-WebRequest -Uri "https://example.com/docker-compose.yml" -OutFile "docker-compose.yml" -UseBasicParsing ``` - **注意**:若遇到SSL/TLS证书错误,可添加`-SkipCertificateCheck`(仅限PowerShell 7+)[^3]。 --- #### 3. 启动Docker容器 运行以下命令启动容器: ```powershell # 确保Docker服务已运行(需提前安装Docker Desktop或配置Docker环境) docker compose up -d ``` - **验证容器状态**: ```powershell docker compose ps ``` - **查看日志**: ```powershell docker compose logs ``` --- ### 关键注意事项 1. **Docker环境配置**: - 确保已安装Docker Desktop并启用WSL 2集成[^4]。 - 若使用Windows子系统Linux(WSL),需配置`DOCKER_HOST`环境变量。 2. **文件路径权限**: - 若Docker容器需挂载本地目录,需在Docker设置中共享对应驱动器[^1]。 3. **网络问题**: - 若拉取镜像失败,检查代理设置或镜像源(如配置阿里云镜像加速)。 --- ### 完整流程示例 ```powershell # 创建目录 mkdir -Force project_root/app, project_root/config # 下载docker-compose.yml cd project_root Invoke-WebRequest -Uri "https://example.com/docker-compose.yml" -OutFile "docker-compose.yml" -UseBasicParsing # 启动容器 docker compose up -d ``` ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10km

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值