Elenco degli articoli
  1. 1. Soluzione uno:
  2. 2. Soluzione 2
    1. 2.1. patch di aggiornamento
    2. 2.2. Imposta il valore predefinito
    3. 2.3. Sistema di verifica
  3. 3. Soluzione tre
  4. 4. Altri contenuti di riferimento

Descrizione: Richiesta interrotta: creazione del canale sicuro SSL/TLS non riuscita. Impossibile creare un canale sicuro SSL/TLS.

Piattaforme di creazione: Windows Server 2012, Windows 7 Service Pack 1 (SP1) e Windows Server 2008 R2 SP1

Soluzione uno:

Imposta il codice prima di HttpWebRequest

ServicePointManager.Expect100Continue = true;

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

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

Soluzione 2

  • Se il metodo sopra non funziona, si tratta di un problema a livello di sistema Aggiorna la patch di sistema in base al sistema che stai attualmente utilizzando.

Aggiornamento per abilitare TLS 1.1 e TLS 1.2 come protocolli di sicurezza predefiniti in WinHTTP in Windows, questo aggiornamento fornisce supporto per Transport Layer Security (TLS) in Windows Server 2012, Windows 7 Service Pack 1 (SP1) e Windows Server 2008 R2 SP1 1.1 e supporto TLS 1.2, fare riferimento alla documentazione ufficialehttps://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

patch di aggiornamento

Imposta il valore predefinito

  • Abilita TLS 1.1 e 1.2 su Windows 7 a livello del componente SChannel (adotta uno degli aggiornamenti 2.1 o 2.2 di seguito)

2.1 Microsoft installa e aggiorna il registro:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi

2.2 Aggiorna manualmente il registro, copia il seguente codice di registro e importalo nel registro. Crea un nuovo txt, modifica il suffisso txt in reg (chiave di registro) e importa (esegui un backup prima dell'importazione)

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

Sistema di verifica

  • Verificare se il sistema supporta TLS1.2, TLS1.3

Si apre PowerShell:

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

Soluzione tre

  • Nessuno dei due metodi precedenti funzionerà. Puoi utilizzare solo il metodo definitivo per aggiornare il sistema a Windows 10.

Altri contenuti di riferimento

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

Le soluzioni esistono, ma dipendono dalla versione del framework:

.NET 4.6 e versioni successive. Non è necessario eseguire alcuna operazione aggiuntiva per supportare TLS 1.2, è supportato per impostazione predefinita.

.NET 4.5. TLS 1.2 è supportato, ma non è il protocollo predefinito. Devi scegliere di usarlo. Il seguente codice imposta TLS 1.2 come predefinito, assicurati di eseguirlo prima di connetterti a una risorsa sicura:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

.NET 4.0. TLS 1.2 non è supportato, ma se nel tuo sistema è installato .NET 4.5 (o versione successiva), hai comunque la possibilità di utilizzare TLS 1.2 anche se il framework dell'applicazione non supporta TLS 1.2. L'unico problema è che SecurityProtocolType in .NET 4.0 non ha alcuna voce per TLS1.2, quindi dobbiamo utilizzare la rappresentazione numerica di questo valore enum:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;

.NET 3.5 o versione precedente. TLS 1.2(*) non è supportato e non esiste alcuna soluzione alternativa. Aggiorna la tua applicazione alla versione più recente del framework.

PS Per lo scenario 3, esiste anche un hack del registro che imporrà alla versione 4.5 di utilizzare TLS 1.2 per impostazione predefinita senza doverlo forzare a livello di codice.
PPS Come menzionato di seguito da Christian Pop di Microsoft, è disponibile un'ultima patch per .NET 3.5 che abilita il supporto TLS1.2.
Vedere:
KB3154518 – Rollup affidabilità HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
KB3154519 – Rollup affidabilità HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
KB3154520 – Rollup affidabilità HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

Elenco degli articoli
  1. 1. Soluzione uno:
  2. 2. Soluzione 2
    1. 2.1. patch di aggiornamento
    2. 2.2. Imposta il valore predefinito
    3. 2.3. Sistema di verifica
  3. 3. Soluzione tre
  4. 4. Altri contenuti di riferimento