Перейти к основному содержанию

PowerShell — Could not create SSL/TLS secure channel

PowerShell

При использовании метода Invoke-WebRequest в Powershell мой скрипт начал сорить ошибкой:

Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.

С кодом точно всё в порядке, он три года уже работает. Но из текста ошибки понятно, что скрипт не может по HTTPS ссылке пройти, не нравится ему что-то в сертификате.

Проблема возникла после накатывания обновлений, видимо, винда больше не хочет доверять старым TLS протоколам, полечим. Добавляем перед Invoke-WebRequest:

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"

И мне помогло.

powershell

Если нужно SSLv3, то:

[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"

Ещё более сильное колдунство, которое я не использовал:

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()

Invoke-WebRequest -Uri https://your.url

Теги

 

Похожие материалы

iLO — настройка Active Directory аутентификации через PowerShell

Чем больше серверов у системного администратора, тем сложнее ими управлять вручную. Сегодня автоматизируем настройку Active Directory аутентификации в iLO 4 и iLO 5 с помощью PowerShell скриптов.

Veritas Backup Exec — выбираем самое свободное хранилище

В Veritas Backup Exec можно указать в качестве хранилища для резервных копий пул хранилищ. Например, "Любое дисковое хранилище". По умолчанию Veritas Backup Exec пишет в первое доступное устройство хранения. Это может привести к неравномерному заполнению доступных хранилищ.