pierwsza stronaSamouczek oprogramowaniaPrzyczyny i rozwiązania „Żądanie przerwane: nie udało się utworzyć bezpiecznego kanału SSL/TLS”
Przyczyny i rozwiązania „Żądanie przerwane: nie udało się utworzyć bezpiecznego kanału SSL/TLS”

Opis: Żądanie przerwane: utworzenie bezpiecznego kanału SSL/TLS nie powiodło się. Nie można utworzyć bezpiecznego kanału SSL/TLS. Platformy kompilacji: Windows Server 2012, Windows 7 z dodatkiem Service Pack 1 (SP1) i Windows Server 2008 R2 SP1

[epizod] pobranie strony internetowej Jest to narzędzie do pobierania obejmujące całą witrynę. Wpisz adres URL, aby pobrać jednym kliknięciem. Jest proste i łatwe w obsłudze oraz oferuje zadania wielowątkowe.

Rozwiązanie 1: Poziom kodu

Ustaw kod przed HttpWebRequest

ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;

Rozwiązanie 2: Poziom systemu

Jeśli powyższa metoda nie zadziała, jest to problem na poziomie systemu. Zaktualizuj poprawkę systemową zgodnie z systemem, którego aktualnie używasz.

Aktualizacja umożliwiająca włączenie TLS 1.1 i TLS 1.2 jako domyślnych protokołów zabezpieczeń w WinHTTP w systemie Windows. Ta aktualizacja zapewnia obsługę protokołu Transport Layer Security (TLS) w systemach Windows Server 2012, Windows 7 z dodatkiem Service Pack 1 (SP1) i Windows Server 2008 R2 SP1 1.1 i TLS 1.2, zapoznaj się z oficjalną dokumentacją https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

Zaktualizuj poprawkę KB3140245

Włącz TLS 1.1 i 1.2 w systemie Windows 7 na poziomie komponentu SChannel (z dowolną aktualizacją poniżej)

Metoda 1: Użyj pakietu instalacyjnego aktualizacji Microsoft, aby zaktualizować plik MicrosoftEasyFix51044.msi
Metoda 2: Ręcznie zaktualizuj rejestr

Skopiuj następujący kod rejestru i zaimportuj go do rejestru. Utwórz nowy plik txt, zmień przyrostek txt na reg (klucz rejestru) i zaimportuj (wykonaj kopię zapasową przed importem)

WIN7 64
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80
Windows Server
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

Sprawdź, czy system obsługuje TLS1.2, TLS1.3

Otwiera się PowerShell:

[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12

Pierwsza linia kodu sprawdza obsługiwaną wersję protokołu TLS. Druga linia kodu modyfikuje obsługę protokołu TLS.

Rozwiązanie 3: Zaktualizuj system

Żadna z dwóch poprzednich metod nie będzie działać, więc możesz użyć tylko metody ostatecznej:

  • Zaktualizuj system do Windows 10 i Windows Server 2019 (obsługuje TLS1.2);
  • Zaktualizuj system do Windows 11 i Windows Server 2022 (obsługuje TLS 1.3).

Uwaga: w przypadku konkretnych wersji TSL obsługiwanych przez każdą wersję systemu Windows, zapoznaj się z dodatkowymi informacjami w tym artykule.


Inna treść referencyjna

Inna treść referencyjna pierwsza

Rozwiązania istnieją, ale zależą od wersji frameworka:

.NET 4.6 i nowsze wersje. Nie musisz wykonywać żadnej dodatkowej pracy, aby obsługiwać TLS 1.2, jest on obsługiwany domyślnie.

.NET 4.5. Obsługiwany jest protokół TLS 1.2, ale nie jest to protokół domyślny. Musisz zdecydować się z niego skorzystać. Poniższy kod ustawia domyślnie protokół TLS 1.2. Pamiętaj, aby go wykonać przed połączeniem się z bezpiecznym zasobem:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

.NET 4.0. Protokół TLS 1.2 nie jest obsługiwany, ale jeśli w systemie jest zainstalowana platforma .NET 4.5 (lub nowsza wersja), nadal masz możliwość korzystania z protokołu TLS 1.2, nawet jeśli Twoja aplikacja nie obsługuje protokołu TLS 1.2. Jedynym problemem jest to, że SecurityProtocolType w .NET 4.0 nie ma wpisu dla TLS1.2, więc musimy użyć numerycznej reprezentacji tej wartości wyliczeniowej:

ServicePointManager.SecurityProtocol = (Typ protokołu bezpieczeństwa) 3072;

.NET 3.5 lub nowsza wersja. Protokół TLS 1.2(*) nie jest obsługiwany i nie ma żadnego obejścia. Zaktualizuj swoją aplikację do najnowszej wersji frameworka.

PS W scenariuszu 3 istnieje również hack rejestru, który wymusi domyślne używanie protokołu TLS 1.2 w wersji 4.5 bez konieczności wymuszania tego programowo. PPS Jak wspomniał poniżej Christian Pop z Microsoftu, dostępna jest najnowsza łatka dla .NET 3.5, która umożliwia obsługę protokołu TLS1.2.

Widzieć:

  • KB3154518 – Pakiet zbiorczy niezawodności HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
  • KB3154519 – Pakiet zbiorczy niezawodności HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
  • KB3154520 – Pakiet zbiorczy niezawodności HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
  • KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

Inna treść referencyjna 2

Być może długość klucza certyfikatu podawana przez witrynę wynosi 512 bitów i zgodnie z obowiązującymi standardami branżowymi powinien zawierać klucz publiczny o długości nie mniejszej niż 2048 bitów. Aktualizacja zabezpieczeń firmy Microsoft z września 2016 r. rozwiązała ten problem, stwierdzając, że jeśli długość klucza publicznego jest mniejsza niż 2048 bajtów (np. RSA 512),System Windows może anulować połączenia HTTPS

Zainstalowane aktualizacje to

2012 R2 and Windows 8

  • KB3185331
  • KB3188743
  • KB3174644

2008 R2 and Windows 7

  • KB3185278
  • KB3185330
  • KB3192391
  • KB3175024
  • KB3172605

Inne treści referencyjne trzy

SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
Wartość domyślna .net 4.0/4.5: SecurityProtocolType.Tls |. SecurityProtocolType.Ssl3 Wartość domyślna .net 4.6/4.7: SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |

https://support.microsoft.com/en-us/help/3069494/cannot-connect-to-a-server-by-using-the-servicepointmanager-or-sslstre

SCH_USE_STRONG_CRYPTO Ta flaga będzie używana automatycznie w .NET Framework 4.6 https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework W Win7Sp1 i .Net 3.5.1 obsługiwany jest TLS1.2

ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Zamknij ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 | (SecurityProtocolType)0xc00;

Wniosek z TLS1.2 jest następujący:

  • Instalacja .Net3.5.1 wymaga poprawki, a następnie dodania wyliczenia TLS1.2
  • Instalacja .Net 4.0 wymaga modyfikacji rejestru, a następnie dodania wyliczenia TLS1.2
  • Po zainstalowaniu .Net4.5 należy także dodać wyliczenie TLS1.2
  • Po zainstalowaniu .Net4.6.1 domyślnie obsługiwany jest protokół TLS1.2.

Modyfikacja rejestru pod .net4

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001

Dodatkowe materiały

Ten artykuł został napisany przezpobranie strony internetowejZebrane i uporządkowane, treść pochodzi z Internetu, przy przedruku prosimy o podanie źródła, dziękujemy.

Aplikacja: pobieranie szablonów front-end; optymalizacja SEO; przeglądanie stron internetowych w trybie offline; Uwaga: to oprogramowanie nie jest programem hakerskim i nie może pobierać danych w tle!
Zastrzeżenie: Usługa służy do osobistych studiów, badań lub oceny, a także do innych celów niekomercyjnych lub non-profit, ale jednocześnie powinna być zgodna z przepisami prawa autorskiego i innymi właściwymi przepisami i nie może naruszać praw autorskich prawa do tej witryny i posiadaczy praw pokrewnych. Ryzyko związane z korzystaniem z narzędzi dostępnych na tej stronie nie ma nic wspólnego z tym oprogramowaniem.
Copyright © 2019-2024 Rabbit Software Wszelkie prawa zastrzeżone Guangdong ICP nr 19111427-2
Informacje o samouczku Instrukcja obsługi Tematyka serwisu