Private/Invoke-PFTrustSelfSignedCertif.ps1

function Invoke-PFTrustSelfSignedCertificate
{
  <#
    .SYNOPSIS
    Trust self-signed certificates
 
    .DESCRIPTION
    Trust self-signed certificates
 
    .EXAMPLE
    Invoke-PFTrustSelfSignedCertificate
 
    .NOTES
     n.a.
    #>


  [CmdletBinding()]
  param (

  )

  begin
  {
  }
  process
  {
    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()
  }
  end
  {
  }
}