Próbuję wykonać to polecenie programu PowerShell
Invoke-WebRequest -Uri https://apod.nasa.gov/apod/
i pojawia się ten błąd. „Invoke-WebRequest: Żądanie zostało przerwane: nie można utworzyć bezpiecznego kanału SSL / TLS.” Żądania https wydają się działać („ https://google.com ”), ale nie dotyczy to tego pytania. Jak mogę to uruchomić lub użyć innej komendy PowerShell do odczytania zawartości strony?
powershell
ssl
hewstone
źródło
źródło
Odpowiedzi:
spróbuj użyć tego
źródło
$env:Profile
, lub jeszcze lepiej, edytuj tabelę rejestru .W bezwstydnej próbie kradzieży niektórych głosów,
SecurityProtocol
jestEnum
z[Flags]
atrybutem. Możesz to zrobić:Lub ponieważ jest to PowerShell, możesz pozwolić mu przeanalizować ciąg znaków:
Zatem technicznie nie musisz znać wersji TLS.
Skopiowałem i wkleiłem to ze skryptu, który utworzyłem po przeczytaniu tej odpowiedzi, ponieważ nie chciałem przeglądać wszystkich dostępnych protokołów, aby znaleźć taki, który zadziałał. Oczywiście możesz to zrobić, jeśli chcesz.
Ostatnia uwaga - w moim profilu PowerShell mam oryginalną instrukcję (bez edycji SO), więc jest to każda sesja, którą zaczynam teraz. Nie jest to całkowicie niezawodne, ponieważ nadal istnieją niektóre witryny, które po prostu zawodzą, ale z pewnością znacznie rzadziej widzę tę wiadomość.
źródło
[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"
. Pamiętaj, że SSLv3 i TLSv1.0 zostały wycofane ze względu na POODLE, więc używaj na własne ryzyko.Jeśli, podobnie jak ja, żadna z powyższych nie działa całkiem dobrze, warto również spróbować wypróbować samą niższą wersję TLS. Próbowałem obu poniższych rozwiązań, ale nie udało mi się rozwiązać mojego problemu:
Ostatecznie zadziałało tylko wtedy, gdy celowałem w TLS 1.0 (konkretnie usuwając 1.1 i 1.2 w kodzie):
Serwer lokalny (na którym próbowano to zrobić) jest w porządku z TLS 1.2, chociaż zdalny serwer (wcześniej „potwierdzony” jako w porządku dla TLS 1.2 przez firmę zewnętrzną) wydaje się nie działać.
Mam nadzieję, że to komuś pomoże.
źródło
Mi to pasuje...
źródło
Pamiętaj, aby najpierw przełączyć SHELL:
źródło
Nie znalazłem powodu, ale ponowna instalacja
.pfx
certyfikatu (zarówno w bieżącym użytkowniku, jak i komputerze lokalnym) działa dla mnie.źródło
Invoke-WebRequest
lokalnie działam na początku, ale później się nie powiedzie. Wygląda na to, że czasami nie może już odczytać certyfikatu (nie znam mechanizmu stojącego za tym. Może to ustawienie kontrolowane przez firmę). Ale ponowna instalacja certyfikatu działa w tym przypadku.