Årsaker og løsninger for "Forespørselen ble avbrutt og den sikre SSL/TLS-kanalen kunne ikke opprettes"
Beskrivelse: Forespørsel avbrutt: Kunne ikke opprette SSL/TLS sikker kanal. Kunne ikke opprette SSL/TLS sikker kanal.
Bygg plattformer: Windows Server 2012, Windows 7 Service Pack 1 (SP1) og Windows Server 2008 R2 SP1
Løsning én:
Angi kode før HttpWebRequest
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
Løsning 2
- Hvis metoden ovenfor ikke fungerer, er det et problem på systemnivå. Oppdater systemoppdateringen i henhold til systemet du bruker.
Oppdater for å aktivere TLS 1.1 og TLS 1.2 som standard sikkerhetsprotokoller i WinHTTP i Windows, denne oppdateringen gir støtte for Transport Layer Security (TLS) i Windows Server 2012, Windows 7 Service Pack 1 (SP1) og Windows Server 2008 R2 SP1 1.1 og TLS 1.2-støtte, se den offisielle dokumentasjonenhttps://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
oppdater patch
Angi standardverdi
- Aktiver TLS 1.1 og 1.2 på Windows 7 på SChannel-komponentnivå (vedta en av 2.1- eller 2.2-oppdateringene nedenfor)
2.1 Microsoft installerer og oppdaterer registret:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi
2.2. Oppdater registret manuelt, kopier følgende registerkode og importer det inn i registret. Opprett en ny txt, endre suffikset txt til reg (registernøkkel), og importer (lag en sikkerhetskopi før import)
1 | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] |
Verifikasjonssystem
- Kontroller om systemet støtter TLS1.2, TLS1.3
PowerShell åpner:
Net.ServicePointManager::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Løsning tre
- Ingen av de to foregående metodene vil fungere. Du kan bare bruke den ultimate metoden for å oppgradere systemet til Windows 10.
Annet referanseinnhold
https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/
Det finnes løsninger, men de avhenger av rammeversjonen:
.NET 4.6 og nyere. Du trenger ikke gjøre noe ekstra arbeid for å støtte TLS 1.2, det støttes som standard.
.NET 4.5. TLS 1.2 støttes, men det er ikke standardprotokollen. Du må velge å bruke den. Følgende kode setter TLS 1.2 som standard, sørg for å kjøre den før du kobler til en sikker ressurs:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2 støttes ikke, men hvis .NET 4.5 (eller høyere) er installert på systemet ditt, har du fortsatt muligheten til å bruke TLS 1.2 selv om applikasjonsrammeverket ditt ikke støtter TLS 1.2. Det eneste problemet er at SecurityProtocolType i .NET 4.0 ikke har noen oppføring for TLS1.2, så vi må bruke den numeriske representasjonen av denne enum-verdien:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;
.NET 3.5 eller lavere. TLS 1.2(*) støttes ikke, og det er ingen løsning. Oppgrader applikasjonen din til den nyeste versjonen av rammeverket.
PS For scenario 3 er det også et registerhack som vil tvinge 4.5 til å bruke TLS 1.2 som standard uten å måtte tvinge det programmatisk.
PPS Som Microsofts Christian Pop nevner nedenfor, er det en siste oppdatering tilgjengelig for .NET 3.5 som muliggjør TLS1.2-støtte.
Se:
KB3154518 – Pålitelighetssammendrag HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
KB3154519 – Pålitelighetssammendrag HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
KB3154520 – Pålitelighetssammendrag HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.