프로젝트를 포트폴리오로 제출할 때 HTTPS가 제공되지 않으면 UX가 좋지 않다는 말을 듣고 HTTPS를 내 프로젝트에 적용해보기로 했다. 구글링을 통해 적당한 방법을 찾았고 아래 링크에서 AWS 공식 문서의 적절한 해석과 이미지를 통해 HTTPS를 적용시킬 수 있었다.
https://amanokaze.github.io/blog/Using-HTTPS-in-Elastic-Beanstalk/
AWS Elastic Beanstalk에서 HTTPS 사용하기
Various IT-based research space, django, cloud, machine learning, and so on.
amanokaze.github.io
HTTPS를 적용시키면서 좋았던 점은 본인 소유의 도메인이 있어야 진행이 가능했는데, 저번주에 이미 DNS 시스템을 적용시켰고 songstagram.ml 이라는 내 도메인이 있었기에 바로 적용이 가능했다.
HTTPS 적용은 크게 두 단계로 나뉜다.
- ACM 공인 인증서 만들기
- 내 Elastic Beanstalk에 ACM 인증서 등록하기
ACM이란 AWS Certificate Manager의 줄임말로, 인증서를 관리하는 서비스이다. 나는 ACM 공인 인증서를 생성했고, 생성 과정은 위의 포스트를 보면서 따라했다.
그 후 내 ELB에 인증서를 등록해야 했는데 내 ELB 환경 구성에 로드 밸런서가 없어서 등록이 불가능했다. 다행히 AWS 공식 문서에서 찾은 내용을 통해, 환경 유형 변경이 가능했고, 단일 인스턴스에서 로드 밸런서를 사용하는 환경으로 변경해서 계속 진행이 가능했다.
환경 유형 - AWS Elastic Beanstalk
환경 유형 AWS Elastic Beanstalk에서 로드 밸런싱 자동 조정 환경 또는 단일 인스턴스 환경을 생성할 수 있습니다. 필요한 환경 유형은 배포하는 애플리케이션에 따라 다릅니다. 예를 들어 비용을 절�
docs.aws.amazon.com
로드 밸런서를 사용한다면 공인 인증서 등록은 크게 어렵지 않고, 리스너를 추가해주기만 하면 됐다.
모든 설정을 마친 후 ELB를 재시작했고 HTTPS가 적용이 되었다.


이제 https로 내 프로젝트 이용이 가능해졌다. 아직 문제점이 있는데, get 방식은 https로 잘 처리를 하는데, post 요청을 처리한 후에 다시 http로 돌아간다는 것이다. 해결방법을 찾아서 고쳐야겠다.
(2020.08.25) 위의 문제점의 원인을 찾았고 해결했다.
post 요청시 작업을 모두 마무리한 후 redirect 요청을 통해 다른 페이지로 이동하게 되는데, 이 redirect가 프로토콜을 변경시켜 https에서 http로 변환되는 것이었다.
예를 들면 https://www.songstagram.ml/login 에서 로그인을 마치면 https://www.songstagram.ml/ 로 이동하려고 하지만 예상과 다르게 http://www.songstagram.ml/ 로 이동하게 된다는 것이다.
해결 방법은 application.properties 또는 yml 에서 아래 설정을 true로 해주면 된다.
server.tomcat.use-relative-redirects = true 부분이다. 위의 설정만 해주면 내가 바라던대로 https를 계속 유지해준다.

'프로젝트 > Songstagram' 카테고리의 다른 글
[Songstagram] 갑자기 회원 수정이 안 되는 상황 해결하기 (0) | 2020.09.21 |
---|---|
[Songstagram] 분노의 ip 차단 기능 구현 (0) | 2020.09.12 |
[Songstagram] 피드백 정리 (0) | 2020.08.25 |
[Songstagram] DNS 등록 (0) | 2020.08.19 |
프로젝트 진행하며 어려웠던 점 메모용 (0) | 2020.07.24 |