본문 바로가기

IT/AWS

AWS ELB 사용하여 SSL 적용(React+ Spring boot)

HTTP

위와 같이 구성을 하고싶었다.

 

EC2에서는 http로 주고 받고 ELB 에서http-> https 로 리디렉션 EC2 에서는 https -> http 요청

-순서- 

1. 도메인을 구입(AWS route53)
2. 도메인 구입한 것을 AWS route53과 연결
3. AWS ACM을 통해서 구입한 도메인의 SSL Certificate를 발급
4. ELB에 SSL Listener 생성
5. ELB security group 설정
6. 최종 SSL 적용

 

# ACM에서 SSL 인증서 발급 Certificate Manager 서비스로 이동
우선 인증서를 발급받기 위해 AWS 콘솔에서 certificate Manager를 검색해서 해당 서비스로 이동합니다.

 

 

certificate Manager 서비스로 이동했다면,요청 버튼을 눌러 신규 생성을 한다.

 

퍼블릭 인증서 요청 후 다음버튼 클릭 

 

도메인 입력 후 요청 필요에 따라 태그 입력 

 

검증보류 중 인 로우 값을 볼 수 있을텐데 해당 인증서 클릭 후 Route 53에서 레코드 생성 버튼 눌러 준다.

Route53 레코드를 생성한 후 1분정도 기다리면 정상적으로 요청한 도메인에 인증서가 발급된 것을 확인할 수 있다.

 

#EC2 -> 로드밸런스 생성 

 

 

 

 

첫번째 두번쨰 선택 

 

보안그룹 default 혹은 본인의 보안 그룹 선택

 

이제 생성된 로드밸런서에서 리스너 설정이 중요합니다. 아래의 이미지에서 HTTP 리스너 ID 의 규칙 보기/편집을 클릭합니다.

 

대상그룹 생성 버튼 클릭 

80으로 들어왔을때 해당 EC2로 포워드 하기위해 생성 

 

 

규칙 편집에서 HTTP 80 PORT의 HTTPS 443 PORT로 리디렉션 .

이 작업은 HTTP로 서버에 컨택할 시에, ELB의 리스너가 HTTPS 로 리디렉션 해주는 설정을 의미.

Front의 경우 443 -> 80으로 전달 EC2 Nginx에서 해당 80 -> React(Port) Proxy 해준다

 

backend API 의 경우 Https 특정포트로 요청시 Backend api EC2로(http)로 전달 하면 EC2 Nginx -> Spring(port) Proxy 해준다