Beskrywing: Versoek is afgelas: Kon nie SSL/TLS veilige kanaal skep nie. Kon nie SSL/TLS veilige kanaal skep nie. Bou platforms: Windows Server 2012, Windows 7 Service Pack 1 (SP1) en Windows Server 2008 R2 SP1
[episode] webwerf aflaai Dit is 'n aflaai-instrument vir die hele webwerf. Voer die URL in om met een klik af te laai. Dit is eenvoudig en maklik om te gebruik en het take met meer draad.
Stel kode voor HttpWebRequest
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
As die bogenoemde metode nie werk nie, is dit 'n stelselvlakprobleem Dateer die stelselpleister op volgens die stelsel wat jy tans gebruik.
Dateer op om TLS 1.1 en TLS 1.2 as die verstek sekuriteitsprotokolle in WinHTTP in Windows te aktiveer, hierdie opdatering bied ondersteuning vir Transport Layer Security (TLS) in Windows Server 2012, Windows 7 Service Pack 1 (SP1) en Windows Server 2008 R2 SP1 1.1 en TLS 1.2-ondersteuning, verwys asseblief na die amptelike dokumentasie https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
Kopieer die volgende registerkode en voer dit in die register in. Skep 'n nuwe txt, verander die agtervoegsel txt na reg (registersleutel), en voer in (maak 'n rugsteun voor invoer)
[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 maak oop:
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Die eerste reël kode kontroleer die ondersteunde TLS-weergawe. Die tweede reël kode wysig TLS-ondersteuning.
Nie een van die vorige twee metodes sal werk nie, so jy kan net die uiteindelike metode gebruik:
Let wel: Vir spesifieke TSL-weergawes wat deur elke Windows-weergawe ondersteun word, verwys asseblief na die aanvullende inligting in hierdie artikel.
Oplossings bestaan, maar dit hang af van die raamwerk weergawe:
.NET 4.6 en hoër. Jy hoef nie enige bykomende werk te doen om TLS 1.2 te ondersteun nie, dit word by verstek ondersteun.
.NET 4.5. TLS 1.2 word ondersteun, maar dit is nie die verstekprotokol nie. Jy moet kies om dit te gebruik. Die volgende kode stel TLS 1.2 as verstek, maak seker dat jy dit uitvoer voordat jy aan 'n veilige hulpbron koppel:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2 word nie ondersteun nie, maar as .NET 4.5 (of hoër) op jou stelsel geïnstalleer is, het jy steeds die opsie om TLS 1.2 te gebruik, selfs al ondersteun jou toepassingsraamwerk nie TLS 1.2 nie. Die enigste probleem is dat SecurityProtocolType in .NET 4.0 geen inskrywing vir TLS1.2 het nie, so ons moet die numeriese voorstelling van hierdie enumwaarde gebruik:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;
.NET 3.5 of laer. TLS 1.2(*) word nie ondersteun nie en daar is geen oplossing nie. Gradeer jou toepassing op na die nuutste weergawe van die raamwerk.
NS Vir scenario 3 is daar ook 'n registerhack wat 4.5 sal dwing om TLS 1.2 by verstek te gebruik sonder om dit programmaties te dwing. PPS Soos Microsoft se Christian Pop hieronder noem, is daar 'n nuutste pleister beskikbaar vir .NET 3.5 wat TLS1.2-ondersteuning moontlik maak.
Sien:
Miskien is die sertifikaatsleutellengte wat deur die webwerf verskaf word 512 bisse, en volgens huidige industriestandaarde moet dit 'n publieke sleutel van nie minder nie as 2048 bisse bevat. Microsoft se September 2016-sekuriteitsopdatering het op hierdie kwessie gereageer deur te sê dat as die publieke sleutellengte minder as 2048 grepe is (bv. RSA 512),Windows kan HTTPS-verbindings kanselleer
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 verstekwaarde: SecurityProtocolType.Tls |
SCH_USE_STRONG_CRYPTO Hierdie vlag sal outomaties in .NET Framework 4.6 gebruik word https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework In Win7Sp1 en .Net 3.5.1 word TLS1.2 ondersteun
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Close ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 (SecurityProtocolType)0xc00 en 12
Die gevolgtrekking van TLS1.2 is die volgende:
Registerwysiging onder .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
Hierdie artikel is geskryf deurwebwerf aflaaiVersamel en georganiseer, die inhoud kom van die internet af, dui asseblief die bron aan wanneer u herdruk, dankie.