Functions/Internal/Enable-SkipCertificateChainControlPolicy.ps1
|
Function Enable-SkipCertificateChainControlPolicy { <# .SYNOPSIS Allow self sign certificate or untrusted certificate chain in HTTPS communication .DESCRIPTION Allow self sign certificate or untrusted certificate chain in HTTPS communication .OUTPUTS None .EXAMPLE Enable bypass certificate chain control for HTTPS C:\PS> Enable-SkipCertificateChainControlPolicy -verbose #> [cmdletbinding()] param() process { if ($PSVersionTable.PSVersion.major -eq 5) { write-verbose -message "Windows PowerShell found - create custom class to allow self signed certificate" try { 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; } } "@ } catch { throw "not able to create TrustAllCertsPolicy custom .NET Class" } try { [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy } catch { throw "not able to call CertificatePolicy and set TrustAllCertsPolicy" } } else { write-verbose -message "PowerShell core found - set default parameter SkipCertificateCheck for invoke-restmethod and invoke-webrequest to allow self signed certificate" $Script:PSDefaultParameterValues = @{ "invoke-restmethod:SkipCertificateCheck" = $true "invoke-webrequest:SkipCertificateCheck" = $true } } } } |