Jak rozwiązać problem związany z Invoke-RestMethod? Jak usunąć błąd PowerShell związany z „The request was aborted: Could not create SSL/TLS secure channel.”?
Przy próbie pobranie zawartości zdalnej witryny z użyciem polecenia Invoke-RestMethod pojawił się poniższy komunikat błedu:
PS C:\Users\Administrator> Invoke-RestMethod firsttorun.sprawdzone.it > first.ps1
Invoke-RestMethod : The request was aborted: Could not create SSL/TLS secure channel.
At line:1 char:1
+ Invoke-RestMethod firsttorun.sprawdzone.it > first.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Problem spowodowany jest tym że domyślnie starsze wersje PowerShell używają TLS 1.0 do obsługi żadań HTTP(s), a witryna do której próbujemy uzyskać dostęp z użyciem polecenia PowerShell wymaga do obsługi żądań protokołu w wersji TLS 1.2.
Wystarczy, że w tej samej sesji konsoli wykonamy polecenie określające protokół zabezpieczeń używany przez PowerShell do nawiązywania połączeń sieciowych (definiując go w wersji 1.2):
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Ustawienie TLS 1.2 jest szczególnie ważne, ponieważ starsze wersje TLS (np. TLS 1.0 i 1.1) są uznawane za mniej bezpieczne i mogą nie być wspierane przez wiele serwerów, szczególnie w przypadku zasobów dostępnych w internecie.
Jeżeli mój wpis Ci się spodobał, pomógł w pracy? Chcesz mnie wspierać? Postaw kawę! To dzięki waszemu wsparciu nie ma reklam! Poniżej kod QR do płatności który jest jednocześnie linkiem do PayPal możesz też wpłacić BLIK z użyciem Przelewy24.pl