我正在制作一个自动脚本,用于从发布最新编译代码的站点读取列表。这是我已经想到的部分。该脚本的下一部分是从具有Untrusted Cert的服务器中获取已编译的代码。
这就是我要抓取文件的方式:
$web = new-object System.Net.WebClient
$web.DownloadFile("https://uri/file.msi", "installer.msi")
然后我收到以下错误:
使用“2”参数调用“DownloadFile”的异常:“基础 连接已关闭:无法建立信任关系 SSL / TLS安全通道。“
我知道我错过了一些东西,但我找不到正确的方法来搜索它。
答案 0 :(得分:4)
Brad是正确的,但请注意,PowerShell V1并不真正支持代理,在这种特定情况下您需要这些代理。我认为这应该get you around这种限制(实际上你所描述的场景恰好是所使用的例子之一)。
答案 1 :(得分:3)
答案 2 :(得分:1)
如果您使用Powershell并遇到此错误。使用命令:
[Net.ServicePointManager] :: SecurityProtocol = [System.Net.SecurityProtocolType] :: Tls12
在下载软件包之前。强制PS使用TLS 1.2。
失败的原因可能是您试图从中下载的网站已禁用PS默认使用的TLS 1.0支持。
答案 3 :(得分:0)
ServerCertificateValidationCallback的最简单的PowerShell实现是始终返回true的脚本块。这在PowerShell 5.1版本中对我有效;尚未在其他版本上测试过。
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
请参见Bhargav Shukla的blog