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
[episodio] download del sito web È uno strumento di download dell'intero sito. Inserisci l'URL per scaricare con un clic. È semplice e facile da usare e ha attività multi-thread.
Imposta il codice prima di HttpWebRequest
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
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 ufficiale https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
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)
[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
[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
Si apre PowerShell:
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
La prima riga di codice controlla la versione TLS supportata. La seconda riga di codice modifica il supporto TLS.
Nessuno dei due metodi precedenti funzionerà, quindi puoi utilizzare solo il metodo definitivo:
Nota: per le versioni TSL specifiche supportate da ciascuna versione di Windows, fare riferimento alle informazioni supplementari in questo articolo.
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 programmazione. 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:
Forse la lunghezza della chiave del certificato fornita dal sito Web è di 512 bit e, secondo gli attuali standard del settore, dovrebbe contenere una chiave pubblica non inferiore a 2048 bit. L'aggiornamento di sicurezza di settembre 2016 di Microsoft ha risposto a questo problema affermando che se la lunghezza della chiave pubblica è inferiore a 2048 byte (ad esempio RSA 512),Windows può annullare le connessioni HTTPS
2012 R2 and Windows 8
2008 R2 and Windows 7
SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
valore predefinito .net 4.0/4.5: SecurityProtocolType.Tls |. SecurityProtocolType.Ssl3 valore predefinito .net 4.6/4.7: SecurityProtocolType.Tls11 |
SCH_USE_STRONG_CRYPTO Questo flag verrà utilizzato automaticamente in .NET Framework 4.6 https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework In Win7Sp1 e .Net 3.5.1, è supportato TLS1.2
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Chiudi ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 (SecurityProtocolType)0xc00;
La conclusione di TLS1.2 è questa:
Modifica del registro in .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
Questo articolo è scritto dadownload del sito webRaccolti e organizzati, i contenuti provengono da Internet, si prega di indicare la fonte in caso di ristampa, grazie.