Symptom
Anta att du har uppgraderat till Microsoft.NET Framework 4.6 på datorn. Anslutningen misslyckas när du använder ett program som använder SSL 3.0 med ServicePointManager eller SslStream API: er för att ansluta till en server.
Orsak
Det här problemet uppstår eftersom standarduppsättningen av SSL/TLS-protokoll som används av ServicePointManager och SslStream har ändrats.
Gammalt värde: Ssl 3.0 | TLS 1.0 | TLS 1.1
Nytt värde: Tls 1.0 | TLS 1.1 | TLS 1.2
Temporär lösning
Undvik problemet genom att uppdatera servern Tls 1.0, Tls 1.1 eller 1.2 Tls eftersom SSL 3.0 har visat sig vara osäker och sårbar för attacker, till exempel POODLE.
Obs! Använd klassen AppContext intresserad av den här funktionen om du inte kan uppdatera servern. Genom att använda någon av följande metoder:
-
Programmering: Måste vara mycket första programmet fungerar eftersom ServicePointManager initierar endast en gång. Använd följande kodexempel 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); -
Med hjälp av AppConfig-filen för tillämpningsprogrammet: Lägg till följande rad i filen Appconfig:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Mer information om kända problem i.NET Framework 4.6 finns i kända problem för.NET Framework 4.6.
Mer Information
Mer information om versionshantering produktförändringar och inverkan i.NET Framework 4.6 finns Programkompatibilitet i.NET Framework 4.6.
Kommentarer
-
Den nya konfigurationen gäller bara när programmet riktar.NET Framework 4.6. .NET Framework 4.5.2 och tidigare versioner kommer inte att påverkas även om de körs i en miljö med.NET Framework 4.6.
-
En lista över berörda översta API: er:
-
HttpClient i HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Den här flaggan kommer att användas automatiskt i.NET Framework 4.6 och påverkar beteendet genom att ta bort osäkra kryptografiska och hash-algoritmer. För alla operativsystem tas tidigare än Windows 10 RC4 -algoritmen bort från användning. Ytterligare osäkra algoritmer att tas bort från Windows 10: DES, NULL, EXPORTERA och MD5