증상
컴퓨터에 Microsoft.NET Framework 4.6 업그레이드 한 것을 가정 합니다. SSL 3.0 ServicePointManager 또는 SslStream Api를 사용 하 여 서버에 연결 하는 응용 프로그램을 사용 하면 연결이 실패 합니다.
원인
ServicePointManager SslStream 에서 사용 하는 SSL/TLS 프로토콜 기본 설정 변경이 문제가 발생 합니다.
이전 값: Ssl 3.0 | Tls 1.0 | Tls 1.1
새 값: Tls 1.0 | Tls 1.1 | Tls 1.2
해결 방법
이 문제를 해결 하려면 SSL 3.0 POODLE 같은 공격에 취약 하 고 안전 하지 않은 것으로 표시 된 때문에 서버를 Tls 1.0, Tls 1.1 또는 Tls 1.2 업데이트.AppContext 클래스를 사용 하 여이 기능을 해제 하도록 합니다. 이렇게 하려면 다음 방법 중 하나를 사용 합니다.
참고: 서버를 업데이트할 수 없습니다-
프로그래밍: ServicePointManager 한 번만 초기화 되므로 응용 프로그램에서는 매우 먼저 되어야 합니다. 다음 코드 예제에서는 응용 프로그램에서 사용 합니다.
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
응용 프로그램에 대 한 AppConfig 파일을 사용 하 여: Appconfig 파일에 다음 줄을 추가 합니다.
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
알려진 문제를.NET Framework 4.6을참조 하십시오.
.NET Framework 4.6에서 알려진된 문제에 대 한 자세한 내용은자세한 내용
제품 버전 변경 및.NET Framework 4.6에 미치는 영향에 대 한 자세한 내용은 .NET Framework 4.6에서 응용 프로그램 호환성을 참조 하십시오. 참고
-
응용 프로그램이.NET Framework 4.6을 대상으로 하는 경우에 새 구성이 적용 됩니다. 4.5.2.NET Framework 및 이전 버전의 적용 되지 않습니다 4.6.NET Framework 환경에서 실행 되는 경우에.
-
영향을 받는 최상위 Api의 목록:
-
HttpWebRequest HttpClient
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO 이 플래그는.NET Framework 4.6에서 자동으로 사용 하 고 안전 하지 않은 암호화 및 해시 알고리즘을 제거 하 여 동작에 영향을. 모든 운영 체제 플랫폼에 대 한 이전의 Windows 10 RC4 알고리즘에서에서 제거할 사용 합니다. 다음 추가 안전 하지 않은 알고리즘은 제거 Windows 10에서: DES, NULL, 내보내고 , MD5