programing

.NET Framework 4.0의 TLS 1.2

nasanasas 2020. 11. 29. 11:47
반응형

.NET Framework 4.0의 TLS 1.2


12 개의 .NET Framework 4.0 WebForms 응용 프로그램을 실행하는 Windows Server 2008 R2 서버가 있으며 TLS 1.0 이하를 비활성화해야합니다. 그렇게하면 모든 보안 연결이 실패하고 TLS 1.0을 다시 활성화해야했습니다. Framework 4.0 환경에서 TLS 1.2를 사용하는 방법이 있습니까? 아마도 내가 뭔가를 놓치고 있습니까?

또한 사용중인 버전 CMS의 제한으로 인해 현재 프레임 워크를 업그레이드 할 수 없습니다.


이것을 변경하는 유일한 방법은 코드에서 직접 수행하는 것입니다.

앱의 맨 처음에 설정 한

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

system.net수업을 포함해야합니다

tls1도 차단해야했기 때문에 웹 서비스를 호출하기 전에이 작업을 수행했습니다.


system.net클래스 라이브러리에 속성을 추가 할 수없는 경우 .

그런 다음 Global.asax 파일을 추가 합니다.

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1

그리고 시작 줄에서 함수에서 사용할 수 있습니다.

ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;

또한 STRIPETLS 1.1, TLS 1.2 만 지원하는 결제 게이트웨이 에 유용합니다 .

편집 : .NET 4.5에 대한 많은 질문이 내 서버에 설치되었는지 여부 ... 여기 Registry에 내 프로덕션 서버 의 스크린 샷이 있습니다.

.NET Framework 4.0 만 설치되어 있습니다.

기재


레지스트리에서 다음과 같이 변경하면 작동합니다.

1.) .NET Framework 강력한 암호화 레지스트리 키

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

2.) 보안 채널 (Schannel) TLS 1.2 레지스트리 키

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

에 따르면 , 당신은 .NET 4.5을 설치해야합니다. 자세한 내용은 웹 페이지를 참조하십시오. 요점은 .NET 4.5를 설치하면 4.0 앱이 4.5 System.dll을 사용한다는 것입니다. 다음 두 가지 방법으로 TLS 1.2를 활성화 할 수 있습니다.

  • 응용 프로그램 시작 부분에 다음 코드를 추가합니다. ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
  • 레지스트리 키 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319: SchUseStrongCryptoDWORD 1

VB로 코딩하고 Application_Start 내부의 Global.asax.vb 파일에 다음 줄을 추가 할 수있었습니다.

ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType)    'TLS 1.2

Windows에 설치된 .NET Framework 4.0에서 동일한 문제가 발생합니다. .NET Framework 4.6.2
를 설치하여이 문제를 해결했습니다 . 또는 최신 패키지다운로드하여 사용해 볼 수 있습니다.

참고 URL : https://stackoverflow.com/questions/33761919/tls-1-2-in-net-framework-4-0

반응형