Beschrijving: Verzoek afgebroken: Kan SSL/TLS-beveiligd kanaal niet maken. Kan geen SSL/TLS-beveiligd kanaal maken. Platformen bouwen: Windows Server 2012, Windows 7 Service Pack 1 (SP1) en Windows Server 2008 R2 SP1
[aflevering] website downloaden Het is een downloadtool voor de hele site. Voer de URL in die u met één klik wilt downloaden. Het is eenvoudig en gemakkelijk te gebruiken en heeft taken met meerdere threads.
Stel code in vóór HttpWebRequest
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
Als de bovenstaande methode niet werkt, is er sprake van een probleem op systeemniveau. Werk de systeempatch bij volgens het systeem dat u momenteel gebruikt.
Update om TLS 1.1 en TLS 1.2 in te schakelen als de standaard beveiligingsprotocollen in WinHTTP in Windows. Deze update biedt ondersteuning voor 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, raadpleeg de officiële documentatie 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 de volgende registercode en importeer deze in het register. Maak een nieuwe txt, verander het achtervoegsel txt in reg (registersleutel) en importeer (maak een back-up voordat u importeert)
[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 wordt geopend:
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
De eerste regel code controleert de ondersteunde TLS-versie.
Geen van de vorige twee methoden zal werken, dus je kunt alleen de ultieme methode gebruiken:
Opmerking: Raadpleeg de aanvullende informatie in dit artikel voor specifieke TSL-versies die door elke Windows-versie worden ondersteund.
Er bestaan oplossingen, maar deze zijn afhankelijk van de raamwerkversie:
.NET 4.6 en hoger. U hoeft geen extra werk te doen om TLS 1.2 te ondersteunen; het wordt standaard ondersteund.
.NET 4.5. TLS 1.2 wordt ondersteund, maar is niet het standaardprotocol. Je moet ervoor kiezen om het te gebruiken. De volgende code stelt TLS 1.2 in als standaard. Zorg ervoor dat u deze uitvoert voordat u verbinding maakt met een beveiligde bron:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2 wordt niet ondersteund, maar als .NET 4.5 (of hoger) op uw systeem is geïnstalleerd, heeft u nog steeds de mogelijkheid om TLS 1.2 te gebruiken, zelfs als uw applicatieframework TLS 1.2 niet ondersteunt. Het enige probleem is dat SecurityProtocolType in .NET 4.0 geen vermelding heeft voor TLS1.2, dus we moeten de numerieke weergave van deze enumwaarde gebruiken:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;
.NET 3.5 of lager. TLS 1.2(*) wordt niet ondersteund en er is geen oplossing. Upgrade uw applicatie naar de nieuwste versie van het framework.
PS Voor scenario 3 is er ook een registerhack die 4.5 dwingt om standaard TLS 1.2 te gebruiken zonder dit programmatisch te hoeven forceren. PPS Zoals Christian Pop van Microsoft hieronder vermeldt, is er een nieuwste patch beschikbaar voor .NET 3.5 die TLS1.2-ondersteuning mogelijk maakt.
Zien:
Misschien is de lengte van de certificaatsleutel die door de website wordt verstrekt 512 bits, en volgens de huidige industriestandaarden zou deze een openbare sleutel van niet minder dan 2048 bits moeten bevatten. De beveiligingsupdate van Microsoft van september 2016 reageerde op dit probleem door te stellen dat als de lengte van de openbare sleutel minder is dan 2048 bytes (bijvoorbeeld RSA 512),Windows kan HTTPS-verbindingen annuleren
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 standaardwaarde: SecurityProtocolType.Tls |. SecurityProtocolType.Ssl3 .net 4.6/4.7 standaardwaarde: SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |
SCH_USE_STRONG_CRYPTO Deze vlag wordt automatisch gebruikt 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 en .Net 3.5.1 wordt TLS1.2 ondersteund
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; //Sluit ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 | (SecurityProtocolType)0xc00 //Ondersteuning toevoegen voor 1.1 en 1.2
De conclusie van TLS1.2 is deze:
Registerwijziging 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
Dit artikel is geschreven doorwebsite downloadenDe inhoud is verzameld en georganiseerd en is afkomstig van internet. Vermeld bij herdruk de bron, dank u.