들어가기 앞서 . . .
웹 서비스를 운영하면서 보안을 강화하는 것은 선택이 아닌 필수이다. 특히 사용자의 데이터가 오가는 API 서버에서는 HTTPS 적용이 필수적이다. 저번 강의에서 ELB 셋팅 후 ELB에 별칭을 설정해 도메인 연결까지 해주었다. 이번 글에서는 AWS의 ELB와 ACM(AWS Certificate Manager)를 활용하여, 도메인에 SSL 인증서를 발급하고 HTTP → HTTPS 리디렉션까지 설정하는 전체 과정을 진행해보고자 한다.
SSL/TLS를 발급해보자
HTTP를 HTTPS로 바꾸기 위한 인증서 발급을 해보도록하자.
Certificate Manager는 SSL/TLS 인증서를 발급 및 관리할 수 있는 서비스이다.
검색해서 들어가자.

인증서 요청을 누르면 아래와 같은 화면이 뜨는데 도메인 이름에 ELB 도메인 주소를 입력해주자.
따로 복잡하게 설정해줄 사항은 없으니 쭉 내려서 요청을 해주자.

인증서를 발급하고 자세히 보기위해 들어와보면 아래에 도메인과 함께 상태가 검증 대기 중으로 뜨는 것을 확인할 수 있다.
우리가 구매하고 만든 도메인을 다른 사람이 연결시키면 안되고, 내가 발급한 https 인증서를 아무나 쓸 수 있으면 안되기때문에 내가 이 도메인의 주인인지를 확인하는 절차를 걸치는 중인 것이다.
Route 53 설정에서 CNAME에 값을 추가해주면 CNAME값에 요청을 보내보고, 만약에 요청이 제대로 처리된다면 주인인 것을 인정해주겠다는 의미이다.

지금까지 무료도메인을 사용하고있었으므로, 무료도메인을 통해 SSL/TLS를 발급하려고 했으나.. 예시글들을 보니 NginX등 아직 모르는 기술들이 많이나오고, 강사님의 커뮤니티 글을 확인하고 발급을 시도했으나 아무리 해도 오류가 발생했다.
어차피 일 년동안 공부하면서 많이 사용할 것 같으니 가장 싼 .link 도메인을 구매하고 연결해주었다.

10분뒤쯤 메일이 오면서 성공적으로 등록되었다.
무료 도메인으로 등록했던 것을 삭제해주고 다시 Route 53을 통해서 도메인을 연결해주자.
이제 다시 certificate manager에서 Route 53에서 레코드 생성을 눌러주자.



AWS Route53으로 다시 들어가 호스팅 영역에 들어가면 CNAME이라는 유형이 생긴 것을 확인할 수 있다.

다시 AWS Certificate Manager(ACM)에 들어가면 검증 대기 중이였던 상태가 성공으로 바뀌어있는 것을 확인할 수 있다.

ELB에 HTTPS 설정하기
EC2의 로드밸런서로 돌아가보자.

HTTP를 HTTPS로 변환하기 위한 인증서도 발급을 하였으니, 이제 ELB로 HTTPS의 요청이 들어올 수 있도록 리스너를 추가해주어야한다! 리스너 추가를 해주자.

프로토콜을 HTTPS로 변경해주고, 대상 그룹을 아까 전에 만들었던 대상 그룹을 선택해준다.

보안 리스너 설정에서 인증서(ACM)를 아까 Certificate Manager를 통해서 인증받은 인증서를 넣는다.
이후 추가를 눌러주자.

https://api.seohaen.link 로 들어가면 보안 안 됨이 뜨지않고 성공적으로 접속할 수 있다.


하지만 현재 리스너를 http도 설정을 해주었기때문에 http://api.seohaen.link로 요청을 하더라도 접근을 할 수 있다.
http로 접근하면 보안적으로 안 좋기 때문에, 이제 사용자가 http로 접근하더라도 https로 자동 전환되도록 설정을 추가해주자.
기존에 있던 리스너 및 규칙에서 HTTP:80 프로토콜로 설정된 리스너를 삭제하고 다시 리스너를 추가해준다.

프로토콜을 HTTP로 두되, 기본 작업에서 대상 그룹으로 전달이 아닌 URL로 리디렉션을 선택해준 뒤 리디렉션 프로토콜을 HTTPS로 프로토콜을 설정해 80번 포트로 요청이 들어오면 HTTPS의 443 포트로 다시 보내게된다.

이러면 HTTP로 접근을 해도 HTTPS로 요청을 다시 보내기때문에 자동으로 HTTPS로 반환하게된다.
테스트를 해보자.

http://api.seohaen.link로 접근을 해도 https://api.seohaen.link 로 URL이 변경되면서 자동으로 HTTPS가 적용된다.
마무리하며
도메인 연결부터 SSL 인증서 발급, 리스너 설정, 리디렉션 구성까지 완료함으로써 기초적인 인프라 보안 설정을 갖춘 서비스 환경을 구축해보았다.
중간중간 인증서 검증 오류나 도메인 설정 문제로 시행착오를 겪었지만, 그 과정 덕분에 HTTPS 환경이 만들어지는 흐름을 온전히 이해할 수 있었다. 특히 HTTP 접근을 자동으로 HTTPS로 리디렉션하는 설정을 통해 실사용 서비스에서 필요한 보안 요소가 무엇인지도 체감할 수 있었다. 다음은 RDS에 대해서 공부해보고자한다. 아자아자!
'AWS' 카테고리의 다른 글
| [AWS] ELB 배포한 Spring Boot 서버와 연결하기 (0) | 2025.06.06 |
|---|---|
| [AWS] ELB 셋팅하기 (0) | 2025.06.06 |
| [AWS]ELB와 SSL/TLS & HTTPS 기초지식 (0) | 2025.02.26 |
| [AWS]AWS EC2 설정하기 (0) | 2025.02.14 |
| [AWS] AWS EC2 기초지식 (0) | 2025.02.13 |