Aprašymas: užklausa nutraukta: nepavyko sukurti saugaus SSL/TLS kanalo. Nepavyko sukurti saugaus SSL/TLS kanalo. Sukurkite platformas: „Windows Server 2012“, „Windows 7“ 1 pakeitimų paketą (SP1) ir „Windows Server 2008 R2 SP1“
[epizodas] svetainės atsisiuntimas Tai yra visos svetainės atsisiuntimo įrankis, kurį norite atsisiųsti vienu spustelėjimu.
Nustatykite kodą prieš HttpWebRequest
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
Jei aukščiau pateiktas metodas neveikia, tai yra sistemos lygio problema. Atnaujinkite sistemos pataisą pagal šiuo metu naudojamą sistemą.
Atnaujinkite, kad įgalintumėte TLS 1.1 ir TLS 1.2 kaip numatytuosius saugos protokolus WinHTTP sistemoje Windows, šis naujinimas palaiko transporto sluoksnio saugą (TLS) sistemoje Windows Server 2012, Windows 7 Service Pack 1 (SP1) ir Windows Server 2008 R2 SP1 1.1. ir TLS 1.2 palaikymą, žr. oficialią dokumentaciją https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
Nukopijuokite šį registro kodą ir importuokite jį į registrą. Sukurkite naują teksto failą, pakeiskite galūnę txt į reg (registro raktas) ir importuokite (prieš importuodami pasidarykite atsarginę kopiją)
[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
„PowerShell“ atidaromas:
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Pirmoji kodo eilutė tikrina palaikomą TLS versiją. Antroji kodo eilutė modifikuoja TLS palaikymą.
Nė vienas iš dviejų ankstesnių metodų neveiks, todėl galite naudoti tik galutinį metodą:
Pastaba: apie konkrečias TSL versijas, kurias palaiko kiekviena Windows versija, žr. papildomą informaciją šiame straipsnyje.
Sprendimų yra, tačiau jie priklauso nuo sistemos versijos:
.NET 4.6 ir naujesnės versijos. Jums nereikia atlikti jokių papildomų darbų, kad palaikytumėte TLS 1.2, ji palaikoma pagal numatytuosius nustatymus.
.NET 4.5. TLS 1.2 palaikomas, tačiau tai nėra numatytasis protokolas. Turite pasirinkti, ar jį naudoti. Šis kodas nustato TLS 1.2 kaip numatytąjį, būtinai jį paleiskite prieš prisijungdami prie saugaus šaltinio:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2 nepalaikomas, bet jei jūsų sistemoje įdiegta .NET 4.5 (arba naujesnė), vis tiek turite galimybę naudoti TLS 1.2, net jei jūsų taikomosios programos nepalaiko TLS 1.2. Vienintelė problema yra ta, kad „SecurityProtocolType“ .NET 4.0 neturi TLS1.2 įrašo, todėl turime naudoti skaitinį šios eilės reikšmės atvaizdavimą:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;
.NET 3.5 arba senesnė versija. TLS 1.2(*) nepalaikomas ir nėra jokio sprendimo. Atnaujinkite savo programą į naujausią sistemos versiją.
PS 3 scenarijuje taip pat yra įsilaužimas į registrą, kuris privers 4.5 naudoti TLS 1.2 pagal numatytuosius nustatymus, nereikės jo priverstinai programiškai. PPS Kaip toliau mini Microsoft Christian Pop, yra naujausia .NET 3.5 pataisa, kuri įgalina TLS1.2 palaikymą.
Matyti:
Galbūt svetainėje pateikiamas sertifikato rakto ilgis yra 512 bitų, o pagal dabartinius pramonės standartus jame turėtų būti ne mažesnis nei 2048 bitų viešasis raktas. „Microsoft“ 2016 m. rugsėjo mėn. saugos naujinimas atsakė į šią problemą, nurodydamas, kad jei viešojo rakto ilgis yra mažesnis nei 2048 baitai (pvz., RSA 512),„Windows“ gali atšaukti HTTPS ryšius
2012 R2 and Windows 8
2008 R2 and Windows 7
SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
.net 4.0/4.5 numatytoji reikšmė: SecurityProtocolType.Ssl3 .net 4.6/4.7: SecurityProtocolType.Tls11 |
SCH_USE_STRONG_CRYPTO Ši žyma bus automatiškai naudojama .NET Framework 4.6 https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework „Win7Sp1“ ir „.Net 3.5.1“ palaikomas TLS1.2
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Close ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 (SecurityProtocolType)0xc00 ir .2.1;
TLS1.2 išvada yra tokia:
Registro pakeitimas .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
Šį straipsnį parašėsvetainės atsisiuntimasSurinkta ir sutvarkyta, turinys ateina iš interneto, perspausdinant prašome nurodyti šaltinį, ačiū.