728x90

프로젝트를 포트폴리오로 제출할 때 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 적용은 크게 두 단계로 나뉜다.

  1. ACM 공인 인증서 만들기
  2. 내 Elastic Beanstalk에 ACM 인증서 등록하기

ACM이란 AWS Certificate Manager의 줄임말로, 인증서를 관리하는 서비스이다. 나는 ACM 공인 인증서를 생성했고, 생성 과정은 위의 포스트를 보면서 따라했다.

그 후 내 ELB에 인증서를 등록해야 했는데 내 ELB 환경 구성에 로드 밸런서가 없어서 등록이 불가능했다. 다행히 AWS 공식 문서에서 찾은 내용을 통해, 환경 유형 변경이 가능했고, 단일 인스턴스에서 로드 밸런서를 사용하는 환경으로 변경해서 계속 진행이 가능했다.

 

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/using-features-managing-env-types.html#using-features.managing.changetype

 

환경 유형 - AWS Elastic Beanstalk

환경 유형 AWS Elastic Beanstalk에서 로드 밸런싱 자동 조정 환경 또는 단일 인스턴스 환경을 생성할 수 있습니다. 필요한 환경 유형은 배포하는 애플리케이션에 따라 다릅니다. 예를 들어 비용을 절�

docs.aws.amazon.com

 

로드 밸런서를 사용한다면 공인 인증서 등록은 크게 어렵지 않고, 리스너를 추가해주기만 하면 됐다.

모든 설정을 마친 후 ELB를 재시작했고 HTTPS가 적용이 되었다.

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를 계속 유지해준다.

 

728x90

+ Recent posts