LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법
개요
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로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_01.png)
HTTP/80 접속 상태 확인
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_02.png)
리스너 추가
로드밸런서 생성시 설정한 HTTPS/443 요청 외에 HTTP/80 요청도 받을 수 있게 로드밸런서에서 HTTP/80 요청을 받을 새로운 리스너를 설정합니다.
로드밸런서를 선택하고 상단의 [리스너 설정 변경] 버튼을 클릭합니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_03.png)
[리스너 추가] 버튼을 클릭합니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_04.png)
HTTP 프로토콜 항목란에 80포트, Target Group 항목란에 80 으로 설정하여 확인버튼을 눌러 마무리 합니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_05.png)
다음과 같이 80 to 80 으로 리스너가 추가되어 HTTP/80 요청에도 응답하여 페이지를 띄울수 있습니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_06.png)
규칙 추가
HTTP로 생성한 리스너를 선택하고 [규칙 조회/변경] 버튼을 클릭합니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_07.png)
다음으로 [규칙 추가] 버튼을 클릭합니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_08.png)
다음의 항목들을 설정합니다.
- 우선순위: 규칙을 적용할 순번을 정할수 있습니다.
- 조건: Host Header 와 Path Pattern 를 선택 할수 있습니다. (본 테스트 에서는 Host Header 기반을 사용하였습니다.)
- 액션: Target group과 Redierction 을 선택할 수 있습니다. (Redierction 선택합니다.)
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_09.png)
⁃ 조건에서 호스트 헤더를 선택후 리디렉션할 도메인 명을 입력한뒤 +추가 버튼을 눌러 추가합니다.
⁃ 액션에서 Redirection 을 선택 Protocol은 HTTPS 로 Port는 443으로 설정하고 확인을 눌러 규칙을 추가합니다.
⁃ 그 외 사용환경에 맞게 규칙을 설정해 사용합니다.
설정된 규칙들을 확인 합니다.
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_11.png)
최종 테스트
이제 다시 HTTP로 도메인 주소를 접속 해보면 규칙에 추가된 Host Header 기반으로 HTTPS로 Redirection 되는 모습을 확인 할수가 있습니다.
HTTP/80 으로 접속시도
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_12.png)
HTTPS/443 으로 Redirection 확인
![Ncloud VPC 환경의 Application LoadBalancer에 http로 접속 시에 https로 리다이렉트 시키는 방법](/images/networking/ncloud_networking_load_balancer_http_to_https_13.png)
문서 업데이트 내역
날짜 | 내용 |
---|---|
2022-03-02 | 문서 최초 생성 |