Symptomer
Anta at du har oppgradert til Microsoft .NET Framework 4.6 på datamaskinen. Når du bruker et program som bruker SSL 3.0, sammen med ServicePointManager eller SslStream APIer til å koble til en server, vil tilkoblingen mislykkes.
Årsak
Dette problemet oppstår fordi standardsettet med SSL/TLS-protokoller som brukes av ServicePointManager og SslStream ble endret.
Gammel verdi: Ssl 3.0 | TLS 1.0 | TLS 1.1
Ny verdi: Tls 1.0 | TLS 1.1 | TLS 1.2
Løsningen
Du kan omgå dette problemet ved å oppdatere serveren til Tls 1.0, 1.1 Tls eller Tls 1.2 fordi SSL 3.0 har vist seg å være usikre og sårbare for angrep som deg.
Obs! Hvis du ikke kan oppdatere serveren, kan du bruke AppContext klassen for å delta på denne funksjonen. Hvis du vil gjøre dette, bruker du én av følgende metoder:
-
Programmatisk: Må være det første som programmet gjør fordi ServicePointManager blir initialisert bare én gang. Bruk følgende kodeeksempel i programmet:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true);
AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
Ved hjelp av AppConfig-filen for programmet: legge til følgende linje i filen Appconfig:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Hvis du vil ha mer informasjon om kjente problemer i .NET Framework 4.6, kan du se kjente problemer for .NET Framework 4.6.
Hvis du vil ha mer informasjon
Hvis du vil ha mer informasjon om produktendringer versjonskontroll og virkningsfulle i .NET Framework 4.6, kan du se Application Compatibility i .NET Framework 4.6.
Notater
-
Den nye konfigurasjonen gjelder bare når programmet er rettet mot .NET Framework 4.6. .NET Framework 4.5.2 og tidligere versjoner, påvirkes ikke selv om de kjører i et miljø med .NET Framework 4.6.
-
En liste over berørte på øverste nivå APIer:
-
HttpClient, HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Dette flagget skal brukes automatisk i .NET Framework 4.6 og påvirker virkemåten ved å fjerne usikre kryptografiske og hash algoritmer. For alle plattformer for operativsystemet vil tidligere enn Windows 10 RC4 -algoritmen bli fjernet fra bruk. Følgende ekstra usikre algoritmer, fjernes fra Windows 10: DES, NULL, EKSPORTERE og MD5