ASP.NET MVC에서 TLS 1.1 및 TLS 1.2 설정하기

 




ASP.NET MVC에서 TLS 1.1 및 TLS 1.2 설정하기

 

.net framework 4.6.2 버전에서 ASP.NET MVC에서 TLS 1.1 및 TLS 1.2를 동시에 사용하려면 Web.config 파일에서 다음과 같은 설정을 수행해야 합니다.

Web.config 파일 열기 

 

ASP.NET MVC 프로젝트의 루트 디렉토리에 있는 Web.config 파일을 엽니다.

<system.web> 요소 추가: <system.web> 요소 안에 다음의 <httpRuntime> 요소를 추가합니다. 이렇게 하면 .NET Framework가 TLS 1.1 및 TLS 1.2를 사용하도록 설정됩니다.

 

<system.web>
  <httpRuntime targetFramework="4.6.2" />
</system.web>

 

 

<system.webServer> 요소 추가: <system.webServer> 요소 안에 다음의 <security> 요소를 추가합니다. 이렇게 하면 IIS Express와 같은 웹 서버에서도 TLS 1.1 및 TLS 1.2를 사용하도록 설정됩니다.

 

<system.webServer>
  <security>
    <customHeaders>
      <add name="X-UA-Compatible" value="IE=edge" />
    </customHeaders>
    <protocolSupport>
      <add name="Http" value="1.1" />
      <add name="Http" value="1.2" />
    </protocolSupport>
  </security>
</system.webServer>

 

저장 및 적용: Web.config 파일을 저장한 후, ASP.NET MVC 애플리케이션을 다시 빌드하고 실행합니다. 이제 애플리케이션은 TLS 1.1 및 TLS 1.2를 모두 사용하여 안전한 통신을 할 수 있습니다.


위의 설정을 통해 ASP.NET MVC 애플리케이션에서 TLS 1.1 및 TLS 1.2를 동시에 사용할 수 있게 됩니다. TLS 1.3 을 제공해 주지 않아 외부 컴포넌트의 힘을 빌려야 합니다. 사용하기가 간단하게 보이지 않네요. 😣 .NET FRAMEWORK 4.8 업그래이드 가능하다면 이를 추천해 봅니다. 😭

 

https://www.bouncycastle.org/csharp/

 

The Legion of the Bouncy Castle C# Cryptography APIs

Welcome Welcome to the home page for the Bouncy Castle C# API! Keeping the Bouncy Castle Project Going With various algorithm changes, updates, security issues in protocols, and having to write vendor statements for organisations like CERT, keeping the Bou

www.bouncycastle.org

 

 

TLS 1.3 은 .NET Framework 4.8 이상부터 지원

 

현재(2021년 9월) 기준으로 .NET Framework 4.6.2는 TLS 1.2를 지원하지만 TLS 1.3를 직접 지원하지 않습니다. TLS 1.3은 .NET Framework 4.8 이상부터 지원됩니다. 따라서 .NET Framework 4.6.2에서 TLS 1.3을 사용하려면 .NET Framework 버전을 업그레이드해야 합니다.

만약 TLS 1.3을 사용하려는 경우, 다음 단계를 수행하여 .NET Framework 버전을 업그레이드하고 ASP.NET MVC에서 TLS 1.3를 활성화할 수 있습니다.

 

 

프로젝트의 대상 .NET Framework 버전 업데이트: 프로젝트 파일(.csproj 또는 .vbproj)을 열고, <TargetFramework> 요소의 값을 .NET Framework 4.8 이상으로 변경합니다. 예를 들어, <TargetFramework> 요소를 다음과 같이 수정할 수 있습니다:

 

<TargetFramework>net472</TargetFramework>

 

Web.config 파일 업데이트: ASP.NET MVC 프로젝트의 Web.config 파일을 엽니다.

<system.webServer> 요소 추가: <system.webServer> 요소 안에 다음의 <security> 요소를 추가합니다. 이렇게 하면 IIS Express와 같은 웹 서버에서도 TLS 1.3를 사용하도록 설정됩니다.

 

<system.webServer>
  <security>
    <customHeaders>
      <add name="X-UA-Compatible" value="IE=edge" />
    </customHeaders>
    <tlsVersions>
      <add value="1.3" />
    </tlsVersions>
  </security>
</system.webServer>

 

Web.config 파일을 저장한 후, ASP.NET MVC 애플리케이션을 다시 빌드하고 실행합니다. 이제 애플리케이션은 TLS 1.3를 사용하여 안전한 통신을 할 수 있습니다. 위의 단계를 따라하면 .NET Framework 버전을 업그레이드하여 ASP.NET MVC에서 TLS 1.3를 활성화할 수 있습니다.

 

 

 

 .NET Framework 4.8의 ASP.NET MVC에서 TLS 1.3을 사용하여 웹 API 호출

 

using System;
using System.Net.Http;
using System.Net.Http.Headers;

namespace YourNamespace.Controllers
{
    public class YourApiController : ApiController
    {
        private static readonly HttpClient HttpClientInstance;

        static YourApiController()
        {
            HttpClientInstance = CreateHttpClientWithTls13();
        }

        [HttpGet]
        public async Task<IHttpActionResult> YourAction()
        {
            // 웹 API 호출 예시
            var apiUrl = "https://api.example.com/your-endpoint";
            var response = await HttpClientInstance.GetAsync(apiUrl);

            // 응답 처리
            if (response.IsSuccessStatusCode)
            {
                var responseBody = await response.Content.ReadAsStringAsync();
                // 처리 로직 추가
                return Ok(responseBody);
            }
            else
            {
                // 오류 처리
                return InternalServerError();
            }
        }

        private static HttpClient CreateHttpClientWithTls13()
        {
            // HttpClient 인스턴스 생성
            var httpClient = new HttpClient();

            // TLS 1.3 활성화
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13;

            // 요청 헤더 구성 (선택사항)
            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            return httpClient;
        }
    }
}

 

위의 코드 예시에서는 YourApiController에서 YourAction이라는 액션 메서드를 정의하고, HttpClientInstance를 사용하여 웹 API를 호출하고 응답을 처리합니다. CreateHttpClientWithTls13 메서드는 HttpClient 인스턴스를 생성하고 TLS 1.3을 사용하도록 설정합니다.

ServicePointManager.SecurityProtocol 속성을 SecurityProtocolType.Tls13로 설정하여 TLS 1.3을 활성화합니다. 이렇게 하면 HttpClient를 통해 생성된 요청은 TLS 1.3을 사용하여 API 서버와 통신할 수 있습니다.

위의 예시 코드를 사용하면 .NET Framework 4.8의 ASP.NET MVC에서 TLS 1.3을 사용하여 웹 API 호출을 수행할 수 있습니다. 필요에 따라 HttpClient의 요청 헤더 등을 추가로 구성할 수 있습니다.

댓글

가장 많이 본 글

인천국제공항 제1여객터미널에서 일본으로 가는 출국 절차 안내 ✈️

빅데이터 시대의 도구, LUCY 2.0

Playwright MCP 설정 및 활용 방법