一个网站要支持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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!