CHashtag

[C#] .net 4.0 기본 연결이 닫혔습니다. (tls 1.2) (https) 본문

C#

[C#] .net 4.0 기본 연결이 닫혔습니다. (tls 1.2) (https)

HyoSeong 2021. 5. 7. 18:07
반응형

기본적으로 .net framework 4.0에서는 tls 1.2가 지원되지 않아 https요청을 보내면

"기본 연결이 닫혔습니다 보내기에서 예기치 않은 오류가 발생했습니다." 라는 에러가 발생합니다.

 

 

이때 .net framework 버전을 4.5.2로 올려도 되지만 버전을 올릴 수 없을 경우 해결방법을 알려드리도록 하겠습니다.

 

 

아래의 함수를 선언한 뒤 프로그램이 시작 시 한번 호출해주면 해결됩니다.

public void SetTls() 
{
    bool platformSupportsTls12 = false;
    foreach (SecurityProtocolType protocol in Enum.GetValues(typeof(SecurityProtocolType)))
    {
    	if (protocol.GetHashCode() == 3072)
        {
            platformSupportsTls12 = true;
        }
    }

    // enable Tls12, if possible
    if (!ServicePointManager.SecurityProtocol.HasFlag((SecurityProtocolType)3072))
    {
    	if (platformSupportsTls12)
    	{
            ServicePointManager.SecurityProtocol |= (SecurityProtocolType)3072;
        }
    }
}

 

감사합니다.

반응형