Private/Ignore-CertificateValidation.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function Ignore-CertificateValidation {
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type) {
  $certCallback = @"
    using System;
    using System.Net;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    public class ServerCertificateValidationCallback {
      public static void Ignore() {
        if (ServicePointManager.ServerCertificateValidationCallback ==null) {
          ServicePointManager.ServerCertificateValidationCallback += delegate
            (
              Object obj,
              X509Certificate certificate,
              X509Chain chain,
              SslPolicyErrors errors
            ) {
                return true;
              };
        }
      }
    }
"@

  Add-Type $certCallback
  }
  [ServerCertificateValidationCallback]::Ignore()
}