개요

Ncloud에서는 웹서버에 인증서를 설치하지 않고 Application LoadBlancer에 인증서를 추가 할수 있습니다.
LoadBalancer에 에 인증서를 두고 로드밸런서에서 HTTPS/443 요청을 받아 서버의 80 포트와 통신을 하게 되는 구조입니다. 이럴 경우 HTTPS 접속만 허용되어 HTTP 요청을 못 받을수 있는데 HTTP로 접속할시 로드밸런서에서 HTTPS로 리다이렉트 시키는 방법을 알아보겠습니다.

테스트환경 사전준비

  • 웹서버: httpd 패키지를 설치 후 간단한 index.html 생성, 80포트를 오픈
  • Target group: 웹서버를 포함하는 HTTP protocol 과 80 port 설정
  • 로드밸런서: 리스너를 HTTPS protocol 과 443 port로 설정
  • DNS 및 인증서: 테스트에 사용할 인증서와 DNS(test1.3rdeyesys.com) 등록

서버생성과 Application Load Balancer 의 생성 가이드는 아래 문서를 참고하시기 바랍니다.

HTTPS와 HTTP 접속

로드밸런서 생성시 HTTPS/443 요청은 받을수 있게 설정하고, HTTP/80 요청을 설정하지않아 test1.3rdeyesys.com 요청은 받을수 있지만 HTTP/80 요청은 연결이 불가한 상태임을 확인할 수 있습니다.

HTTPS/433 접속 상태 확인

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

HTTP/80 접속 상태 확인

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

리스너 추가

로드밸런서 생성시 설정한 HTTPS/443 요청 외에 HTTP/80 요청도 받을 수 있게 로드밸런서에서 HTTP/80 요청을 받을 새로운 리스너를 설정합니다.

로드밸런서를 선택하고 상단의 [리스너 설정 변경] 버튼을 클릭합니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

[리스너 추가] 버튼을 클릭합니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

HTTP 프로토콜 항목란에 80포트, Target Group 항목란에 80 으로 설정하여 확인버튼을 눌러 마무리 합니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

다음과 같이 80 to 80 으로 리스너가 추가되어 HTTP/80 요청에도 응답하여 페이지를 띄울수 있습니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법
HTTP/80 요청은 로드밸런서를 거쳐 그대로 서버의 80 포트와 통신하기에 보안상에 문제가 생길수 있습니다. 그러므로 Application LoadBalancer의 기능을 이용하여 HTTP/80으로 들어오는 요청을 HTTPS/443으로 Redirection 하겠습니다.

규칙 추가

HTTP로 생성한 리스너를 선택하고 [규칙 조회/변경] 버튼을 클릭합니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

다음으로 [규칙 추가] 버튼을 클릭합니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

다음의 항목들을 설정합니다.

  • 우선순위: 규칙을 적용할 순번을 정할수 있습니다.
  • 조건: Host Header 와 Path Pattern 를 선택 할수 있습니다. (본 테스트 에서는 Host Header 기반을 사용하였습니다.)
  • 액션: Target group과 Redierction 을 선택할 수 있습니다. (Redierction 선택합니다.)
Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법
⁃ 우선순위는 적당한 순번의 숫자를 넣습니다.
⁃ 조건에서 호스트 헤더를 선택후 리디렉션할 도메인 명을 입력한뒤 +추가 버튼을 눌러 추가합니다.
⁃ 액션에서 Redirection 을 선택 Protocol은 HTTPS 로 Port는 443으로 설정하고 확인을 눌러 규칙을 추가합니다.
⁃ 그 외 사용환경에 맞게 규칙을 설정해 사용합니다.

설정된 규칙들을 확인 합니다.

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

최종 테스트

이제 다시 HTTP로 도메인 주소를 접속 해보면 규칙에 추가된 Host Header 기반으로 HTTPS로 Redirection 되는 모습을 확인 할수가 있습니다.

HTTP/80 으로 접속시도

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

HTTPS/443 으로 Redirection 확인

Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법

문서 업데이트 내역

날짜 내용
2022-03-02 문서 최초 생성