Каталог артыкулаў
  1. 1. Рашэнне першае:
  2. 2. Рашэнне 2
    1. 2.1. патч абнаўлення
    2. 2.2. Задаць значэнне па змаўчанні
    3. 2.3. Сістэма праверкі
  3. 3. Рашэнне трэцяе
  4. 4. Іншы даведачны кантэнт

Апісанне: Запыт спынены: не ўдалося стварыць бяспечны канал SSL/TLS. Не атрымалася стварыць бяспечны канал SSL/TLS.

Платформы зборкі: Windows Server 2012, Windows 7 Service Pack 1 (SP1) і Windows Server 2008 R2 SP1

Рашэнне першае:

Усталюйце код перад 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

патч абнаўлення

Задаць значэнне па змаўчанні

  • Уключыце TLS 1.1 і 1.2 у Windows 7 на ўзроўні кампанента SChannel (прыміце адно з абнаўленняў 2.1 або 2.2, прыведзеных ніжэй)

2.1 Microsoft усталёўвае і абнаўляе рэестр:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi

2.2 Абнавіце рэестр уручную, скапіруйце наступны код рэестра і імпартуйце яго ў рэестр. Стварыце новы тэкставы файл, змяніце суфікс txt на reg (ключ рэестра) і імпартуйце (зрабіце рэзервовую копію перад імпартам)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12

Рашэнне трэцяе

  • Ні адзін з двух папярэдніх метадаў не будзе працаваць. Вы можаце выкарыстоўваць толькі канчатковы метад для абнаўлення сістэмы да Windows 10.

Іншы даведачны кантэнт

https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/

Рашэнні існуюць, але яны залежаць ад версіі фрэймворка:

.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 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
KB3154519 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
KB3154520 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

Каталог артыкулаў
  1. 1. Рашэнне першае:
  2. 2. Рашэнне 2
    1. 2.1. патч абнаўлення
    2. 2.2. Задаць значэнне па змаўчанні
    3. 2.3. Сістэма праверкі
  3. 3. Рашэнне трэцяе
  4. 4. Іншы даведачны кантэнт