титульная страницаУчебник по программному обеспечениюПричины и решения проблемы «Запрос прерван: не удалось создать безопасный канал SSL/TLS»
Причины и решения проблемы «Запрос прерван: не удалось создать безопасный канал SSL/TLS»

Описание: Запрос прерван: не удалось создать безопасный канал SSL/TLS. Не удалось создать безопасный канал SSL/TLS. Платформы сборки: Windows Server 2012, Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 R2 SP1.

[эпизод] загрузка веб-сайта Это инструмент для загрузки всего сайта. Введите URL-адрес для загрузки одним щелчком мыши. Он прост и удобен в использовании и имеет многопоточные задачи.

Решение 1. Уровень кода

Установите код перед HttpWebRequest

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

Решение 2: Системный уровень

Если описанный выше метод не работает, это проблема на уровне системы. Обновите системный патч в соответствии с системой, которую вы используете в данный момент.

Обновление для включения TLS 1.1 и TLS 1.2 в качестве протоколов безопасности по умолчанию в WinHTTP в Windows. Это обновление обеспечивает поддержку безопасности транспортного уровня (TLS) в Windows Server 2012, Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 R2 SP1 1.1. и поддержку TLS 1.2, обратитесь к официальной документации. https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

Обновление патча KB3140245

Включите TLS 1.1 и 1.2 в Windows 7 на уровне компонента SChannel (с любым обновлением ниже).

Способ 1. Используйте установочный пакет обновлений Microsoft для обновления MicrosoftEasyFix51044.msi.
Способ 2. Обновление реестра вручную.

Скопируйте следующий код реестра и импортируйте его в реестр. Создайте новый txt, измените суффикс txt на reg (ключ реестра) и импортируйте (перед импортом сделайте резервную копию).

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

Проверьте, поддерживает ли система TLS1.2, TLS1.3.

PowerShell открывается:

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

Первая строка кода проверяет поддерживаемую версию TLS. Вторая строка кода изменяет поддержку TLS.

Решение 3. Обновите систему

Ни один из предыдущих двух методов не сработает, поэтому вы можете использовать только последний метод:

  • Обновите систему до Windows 10 и Windows Server 2019 (поддерживает TLS1.2);
  • Обновите систему до Windows 11 и Windows Server 2022 (поддерживает TLS1.3).

Примечание. Информацию о конкретных версиях TSL, поддерживаемых каждой версией Windows, см. в дополнительной информации в этой статье.


Другой справочный контент

Другой справочный контент один

Решения существуют, но они зависят от версии фреймворка:

.NET 4.6 и выше. Для поддержки TLS 1.2 не нужно выполнять никаких дополнительных действий, он поддерживается по умолчанию.

.NET 4.5. TLS 1.2 поддерживается, но не является протоколом по умолчанию. Вам нужно выбрать, как его использовать. Следующий код устанавливает TLS 1.2 по умолчанию, обязательно выполните его перед подключением к защищенному ресурсу:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

.NET 4.0. TLS 1.2 не поддерживается, но если в вашей системе установлен .NET 4.5 (или более поздняя версия), у вас все равно есть возможность использовать TLS 1.2, даже если платформа вашего приложения не поддерживает TLS 1.2. Единственная проблема заключается в том, что SecurityProtocolType в .NET 4.0 не имеет записи для TLS1.2, поэтому нам приходится использовать числовое представление этого значения перечисления:

ServicePointManager.SecurityProtocol = (SecurityProtocolType) 3072;

.NET 3.5 или ниже. TLS 1.2(*) не поддерживается, и обходного пути нет. Обновите свое приложение до последней версии платформы.

PS Для сценария 3 также есть хак реестра, который заставит 4.5 использовать TLS 1.2 по умолчанию без необходимости принудительного программного использования. PPS Как упоминает ниже Кристиан Поп из Microsoft, для .NET 3.5 доступен последний патч, который включает поддержку TLS1.2.

Видеть:

  • KB3154518 — Накопительный пакет надежности HR-1605 — NDP 2.0 SP2 — Win7 SP1/Win 2008 R2 SP1
  • KB3154519 — Накопительный пакет надежности HR-1605 — NDP 2.0 SP2 — Win8 RTM/Win 2012 RTM
  • KB3154520 — Накопительный пакет надежности HR-1605 — NDP 2.0 SP2 — Win8.1RTM/Win 2012 R2 RTM
  • KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

Другой справочный контент 2

Возможно, длина ключа сертификата, предоставленного веб-сайтом, составляет 512 бит, и согласно действующим отраслевым стандартам он должен содержать открытый ключ длиной не менее 2048 бит. Обновление безопасности Microsoft от сентября 2016 года отреагировало на эту проблему, заявив, что если длина открытого ключа меньше 2048 байт (например, RSA 512),Windows может отменить HTTPS-соединения

Установленные обновления

2012 R2 and Windows 8

  • KB3185331
  • KB3188743
  • KB3174644

2008 R2 and Windows 7

  • KB3185278
  • KB3185330
  • KB3192391
  • KB3175024
  • KB3172605

Другое справочное содержание три

SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
Значение по умолчанию для .net 4.0/4.5: SecurityProtocolType.Tls | SecurityProtocolType.Ssl3 Значение по умолчанию для .net 4.6/4.7: SecurityProtocolType.Tls | SecurityProtocolType.Tls12 |

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

SCH_USE_STRONG_CRYPTO Этот флаг будет использоваться автоматически в .NET Framework 4.6. https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework В Win7Sp1 и .Net 3.5.1 поддерживается TLS1.2.

ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Закрываем ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 | (SecurityProtocolType)0xc00 //Добавляем поддержку 1.1 и 1.2;

Вывод TLS1.2 таков:

  • Для установки .Net3.5.1 требуется исправление, а затем добавление перечисления TLS1.2.
  • Для установки .Net 4.0 требуется изменить реестр, а затем добавить перечисление TLS1.2.
  • После установки .Net4.5 вам также необходимо добавить перечисление TLS1.2.
  • После установки .Net4.6.1 TLS1.2 поддерживается по умолчанию.

Модификация реестра под .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

дополнительные материалы

Эту статью написалзагрузка веб-сайтаСобрано и систематизировано, контент взят из Интернета, при перепечатке указывайте источник, спасибо.

Программное обеспечение: загрузка шаблонов интерфейса; разработка и дизайн SEO-оптимизации; просмотр веб-страниц в автономном режиме; Примечание. Это программное обеспечение не является хакерской программой и не может загружать фоновые данные!
Отказ от ответственности: Сервис предназначен для личного изучения, исследования или оценки, а также для других некоммерческих или некоммерческих целей, но в то же время он должен соответствовать положениям закона об авторском праве и других соответствующих законов и не должен нарушать законные права этого веб-сайта и правообладателей связанных с ним рисков, связанных с использованием инструментов на этом сайте, не имеют никакого отношения к этому программному обеспечению.
Copyright © 2019-2024 Rabbit Software. Все права защищены. Гуандун ICP № 19111427-2
Информация об уроке Руководство пользователя Темы сайта