Invoke-RestMethod 访问不受信任的https网站


一个网站要支持https访问,它本身得配置一个ssl证书。一般在测试环境中我们会使用自签名证书,这种自签名证书是不受CA信任的,因此在浏览器地址栏会显示红色的警告,但是我们可以忽略这个警告选择继续访问。

同样的PowerShell客户端使用Invoke-RestMethod 或者Invoke-WebRequest来访问不受信任的https网站,也会出错:

Invoke-RestMethod : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS
secure channel.

那我们如何忽略证书的验证,并继续访问呢?可以这样做:

add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

$result = Invoke-WebRequest -Uri "https://www.pstips.net"

以上解决方案引用自:Powershell v3 Invoke-WebRequest HTTPS error

本文链接: https://www.pstips.net/invoke-restmethod-access-https.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注