Redenen en oplossingen voor "Het verzoek is afgebroken en het beveiligde SSL/TLS-kanaal kan niet worden gemaakt"
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
Oplossing één:
Stel code in vóór HttpWebRequest
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
Oplossing 2
- 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 documentatiehttps://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
update-patch
Standaardwaarde instellen
- Schakel TLS 1.1 en 1.2 in op Windows 7 op SChannel-componentniveau (neem een van de 2.1- of 2.2-updates hieronder over)
2.1 Microsoft installeert en werkt het register bij:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi
2.2. Werk het register handmatig bij, 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)
1 | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] |
Verificatiesysteem
- Controleer of het systeem TLS1.2, TLS1.3 ondersteunt
PowerShell wordt geopend:
Net.ServicePointManager::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Oplossing drie
- Geen van de twee voorgaande methoden zal werken. U kunt alleen de ultieme methode gebruiken om het systeem naar Windows 10 te upgraden.
Andere referentie-inhoud
https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/
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:
KB3154518 – Betrouwbaarheidspakket HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
KB3154519 – Betrouwbaarheidspakket HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
KB3154520 – Betrouwbaarheidspakket HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.