我一直使用的是已经工作了一年没有问题的脚本,使得要进行的调用,RestMethod到安全(HTTPS)网站,这是现在发生故障。在经过多次测试后,我发现我可以使呼叫始终如一地失败,并可重复使用任何安全站点请求,但我不知道为什么。以下代码失败。Powershell的调用,RestMethod证书验证
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Invoke-RestMethod -Uri https://blogs.msdn.com/powershell/rss.aspx | Format-Table -Property Title, pubDate
产生的误差是:
调用-RestMethod:基础连接已关闭:一个发送发生意外的错误。 在行:1个字符:1 +调用-RestMethod -uri https://blogs.msdn.com/powershell/rss.aspx |格式 - 表... + ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~InvalidOperation:(System.Net.HttpWebRequest:HttpWebRequest)[Invoke-RestMethod],WebException + FullyQualifiedErrorId:WebCmdletWebResponseException ,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
我发现,如果我包括
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
上面的行,我得到前面示出的错误。上述行为和错误实际上是与相对应的情况。以前,我无法在不分配ServerCertificateValidationCallback为真的情况下发出https请求。
我已经从多台计算机想这一点,在不同的Windows用户配置文件,使用管理员权限启动PowerShell的,但我觉得加入上述行让我可以重现该问题。为了使它工作,我必须关闭PowerShell,重新打开并删除ServerCertificateValidationCallback行。如果我将该行添加到代码中,则错误返回。
我最后一次跑到我的代码是两个星期前,所以这是狭义我可以精确的时间表。有关为什么现在失败的任何想法?
请注意,这是不是该网站我原本有一个问题,但是,我面临的问题可以用上面的代码复制。
[这可能有助于](http://stackoverflow.com/questions/36265534/invoke-webrequest-ssl-fails/36266735#36266735) –