Adresář článků
  1. 1. Řešení jedna:
  2. 2. Řešení 2
    1. 2.1. oprava aktualizace
    2. 2.2. Nastavit výchozí hodnotu
    3. 2.3. Ověřovací systém
  3. 3. Řešení tři
  4. 4. Další referenční obsah

Popis: Požadavek přerušen: Nepodařilo se vytvořit zabezpečený kanál SSL/TLS. Nelze vytvořit zabezpečený kanál SSL/TLS.

Platformy sestavení: Windows Server 2012, Windows 7 Service Pack 1 (SP1) a Windows Server 2008 R2 SP1

Řešení jedna:

Nastavte kód před HttpWebRequest

ServicePointManager.Expect100Continue = true;

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;

Řešení 2

  • Pokud výše uvedená metoda nefunguje, jedná se o problém na úrovni systému Aktualizujte opravu systému podle systému, který právě používáte.

Aktualizace umožňující TLS 1.1 a TLS 1.2 jako výchozí protokoly zabezpečení ve WinHTTP v systému Windows, tato aktualizace poskytuje podporu pro Transport Layer Security (TLS) v systémech Windows Server 2012, Windows 7 Service Pack 1 (SP1) a Windows Server 2008 R2 SP1 1.1 a podporu TLS 1.2 naleznete v oficiální dokumentacihttps://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

oprava aktualizace

Nastavit výchozí hodnotu

  • Povolte TLS 1.1 a 1.2 ve Windows 7 na úrovni komponenty SChannel (přijměte jednu z aktualizací 2.1 nebo 2.2 níže)

2.1 Microsoft nainstaluje a aktualizuje registr:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi

2.2 Ručně aktualizujte registr, zkopírujte následující kód registru a importujte jej do registru. Vytvořte nový txt, změňte příponu txt na reg (klíč registru) a importujte (před importem vytvořte zálohu)

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

Ověřovací systém

  • Ověřte, zda systém podporuje TLS1.2, TLS1.3

PowerShell se otevře:

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

Řešení tři

  • Žádná z předchozích dvou metod nebude fungovat. K upgradu systému na Windows 10 můžete použít pouze ultimátní metodu.

Další referenční obsah

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

Řešení existují, ale závisí na verzi frameworku:

.NET 4.6 a vyšší. Pro podporu TLS 1.2 nemusíte dělat žádnou další práci, je podporována ve výchozím nastavení.

.NET 4.5. TLS 1.2 je podporován, ale není to výchozí protokol. Musíte se rozhodnout jej používat. Následující kód nastavuje TLS 1.2 jako výchozí, nezapomeňte jej spustit před připojením k zabezpečenému prostředku:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

.NET 4.0. TLS 1.2 není podporováno, ale pokud je na vašem systému nainstalováno .NET 4.5 (nebo vyšší), stále máte možnost používat TLS 1.2, i když váš aplikační rámec TLS 1.2 nepodporuje. Jediným problémem je, že SecurityProtocolType v .NET 4.0 nemá žádný záznam pro TLS1.2, takže musíme použít číselnou reprezentaci této hodnoty výčtu:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;

.NET 3.5 nebo nižší. TLS 1.2(*) není podporován a neexistuje žádné řešení. Upgradujte svou aplikaci na nejnovější verzi frameworku.

PS Pro scénář 3 existuje také hack registru, který přinutí 4.5, aby ve výchozím nastavení používal TLS 1.2, aniž by to bylo nutné vynucovat programově.
PPS Jak Christian Pop z Microsoftu zmiňuje níže, pro .NET 3.5 je k dispozici nejnovější oprava, která umožňuje podporu TLS1.2.
Vidět:
KB3154518 – Souhrnná spolehlivost spolehlivosti 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.

Adresář článků
  1. 1. Řešení jedna:
  2. 2. Řešení 2
    1. 2.1. oprava aktualizace
    2. 2.2. Nastavit výchozí hodnotu
    3. 2.3. Ověřovací systém
  3. 3. Řešení tři
  4. 4. Další referenční obsah