Applies ToWindows 8 Windows Server 2012 Datacenter Windows Server 2012 Essentials Windows Server 2012 for Embedded Systems Windows Server 2012 Foundation Windows Server 2012 Standard

.NET Framework 3.5 이하 버전은 응용 프로그램에서 TLS(전송 계층 보안) 시스템 기본 버전을 암호화 프로토콜로 사용하도록 지원하지 않습니다. 이 업데이트를 설치하면 .NET Framework 3.5에서 TLS v1.2를 사용할 수 있습니다.

참고 이 콘텐츠는 업데이트에서 사용할 Windows 있습니다. 콘텐츠를 얻었다면 최신 업데이트에 Windows 업데이트를 .NET Framework 검색합니다. 업데이트 업데이트를 통해 시스템이 Windows 경우 추가 조치를 취할 필요가 없습니다.

해결 방법

다운로드 정보

KB3154519에 해당하는 핫픽스는 이전에 KB3154519에 .NET Framework 최신 업데이트와 함께 추가됩니다. 최신 업데이트를 설치하는 것이 .NET Framework.이 영역에는 다음과 같은 개선이 있습니다.

  • 컴퓨터에서 실행되는 관리되는 응용 프로그램에 대해 하드코드된 .NET Framework 기본값 대신 SSL 및 TLS에 대한 운영 체제 기본값을 사용하도록 다음 레지스트리 키를 설정할 수 있습니다.

    • 64비트 운영 체제의 경우:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001

    • 32비트 운영 체제의 경우:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001

    참고 코드에서 또는 구성 파일을 통해 응용 프로그램의  ServicePointManager.SecureProtocol 이 특정 값으로 설정되어 있거나, 응용 프로그램이  SslStream.AuthenticateAs* API를 사용하여 특정  SslProtocols 열거형을 지정하는 경우 레지스트리 설정 동작이 나타나지 않습니다.

  • 또한 Microsoft에서 추가한  SslProtocolsExtensions 열거형은 TLS v1.2, TLS v1.1을 설정하기 위한 옵션으로는 물론, .NET Framework 버전 2.0 SP2를 대상으로 지정할 때  ServicePointManager.SecurityProtocol 속성의 운영 체제 기본값으로도 사용할 수 있습니다. (확장을 사용하는 방법에 대한 자세한 내용은 개발자 지침 섹션을 참조하세요.) 참고 Windows Vista SP2 및 Windows Server 2008 SP2는 TLS(전송 계층 보안) 프로토콜 버전이 1.0보다 더 이상 지원되지 않습니다. 관리 .NET Framework Vista SP2 또는 Windows Server 2008 SP Windows 2에서 실행되는 관리되는 2.0 SP2 애플리케이션은 해당 프로토콜이 ServicePointManager.SecurityProtocol 속성에 설정되어 있는 경우에도 TLS 1.2 또는 TLS 1.1을 사용할 수 없습니다.

Microsoft 지원 파일을 다운로드하는 방법에 대한 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하세요.

119591 온라인 서비스에서 Microsoft 지원 파일을 얻는 방법 Microsoft는 바이러스를 위해 이 파일을 검색했습니다. Microsoft는 파일을 게시한 날짜에 사용할 수 있는 최신 바이러스 예방 소프트웨어로 이 파일을 검사했습니다. 이 파일은 해당 파일을 무단으로 변경할 수 없는 보안이 향상된 서버에 보관됩니다.

개발자 지침

새 확장의 정의는 다음 파일에 있습니다.  

  • SecurityProtocolTypeExtensions.csnamespace System.Net { System.Security.Authentication 사용; 공용 정적 클래스 SecurityProtocolTypeExtensions { public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12; public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11; public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0; } }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication { 공용 정적 클래스 SslProtocolsExtensions { public const SslProtocols Tls12 = (SslProtocols)0x00000C00; public const SslProtocols Tls11 = (SslProtocols)0x00000300; } }

TLS v1.2에 대한 지원을 포함하려면 프로젝트에 원본 파일을 포함한 다음 다음 메서드를 사용하여 프로토콜 버전을 설정합니다.  

  • ServicePointManager 기반 API를 사용하는 애플리케이션은 다음을 사용하여 프로토콜을 설정할 수 있습니다. System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) 오버로드를 사용하는 애플리케이션은 SslProtocolsExtensions.Tls12로 SslProtocolsExtensions.Tls12를 설정할 수 있습니다.

첫 번째 단락에 언급된 레지스트리 설정이 설정되고 SslProtocols 값이 애플리케이션에서 SslProtocols.None으로 설정되어 있는 경우 선택한 시스템 기본 동작은 Windows 버전에 따라 결정됩니다.또한 3.5 SP1에서 TLS v1..NET Framework 2에 대한 지원을 사용하도록 애플리케이션 코드를 변경하는 경우 이 패치가 배포되지 않은 컴퓨터에서 다음 예외를 해결해야 합니다.  

  1. 핫픽스가 설치되지 않은 경우 ServicePointManager 기반 API(HTTP, FTP, SMTP)는 애플리케이션에서 ServicePointManager.SecurityProtocol을 호출하여 새 값을 설정하는 경우 "System.NotSupportedException: 요청된 보안 프로토콜이 지원되지 않습니다"를 throw합니다.

  2. 핫픽스가 설치되지 않은 경우 SslStream 기반 API는 AuthenticateAs* API 중 하나를 호출할 때 예외를 throw합니다.

    System.ArgumentException: 지정된 값은 'SslProtocolType' 열방에서 유효하지 않습니다.매개 변수 이름: sslProtocolType

참고 SslStream만 기존 Tls, Ssl3, Ssl2와 Tls12, Tls11의 조합(예: Tls12 | Tls11 | Tls)는 패치가 없는 시스템의 기존 프로토콜(예: Tls)으로 자동으로 다운그레이드됩니다. 예외를 throw하지 않고 Tls에 연결됩니다.  

추가 정보

TLS v1.1 또는 v1.2를 운영 체제 기본값으로 사용하도록 설정하려면 https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.참고 TLS v1.1 및 v1.2는 Vista 또는 Windows 서버 2008에서 Windows 없습니다.특정 애플리케이션에 대한 "해결" 섹션에 언급된 레지스트리 키로 설정된 운영 체제 기본값을 사용하지 않도록 설정해야 하는 경우 DWORD 0의 파일용 HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<전체 경로의 .exe 추가하여 이 작업을>> 수 있습니다. C:\MyApp\MyApp.exe DWORD 0

TLS v1.2에 대한 자세한 내용은 TLS v1.2 소개를 참조하세요.SystemDefaultTlsVersions .NET 레지스트리 키를 사용하도록 설정한 후 다음 표에 표시된 Windows 각 버전에 대해 다른 동작이 발생합니다.  

Windows 버전

SSL2 클라이언트

SSL2 서버

SSL3 클라이언트

SSL3 서버

TLS 1.0 클라이언트

TLS 1.0 Server

TLS 1.1 클라이언트

TLS 1.1 서버

TLS 1.2 클라이언트

TLS 1.2 서버

Windows Vista SP2 및 Windows Server 2008 SP2

끄기

에서

에서

에서

에서

에서

해당 없음

해당 없음

해당 없음

해당 없음

Windows 7 SP1 및 Windows Server 2008 R2 SP1

끄기

에서

에서

에서

에서

에서

끄기

끄기

끄기

끄기

Windows Server 2012

끄기

끄기

에서

에서

에서

에서

에서

에서

에서

에서

Windows 8.1 및 Windows Server 2012 R2

끄기

끄기

에서

에서

에서

에서

에서

에서

에서

에서

Windows 10

끄기

끄기

에서

에서

에서

에서

에서

에서

에서

에서

Windows 10(1511)

끄기

끄기

에서

에서

에서

에서

에서

에서

에서

에서

Windows 10(1607) 및 Windows Server 2016

해당 없음

해당 없음

끄기

끄기

에서

에서

에서

에서

에서

에서

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.