개발 일지

AWS EC2에 HTTPS 적용하기(1) 본문

카테고리 없음

AWS EC2에 HTTPS 적용하기(1)

junjun_ 2024. 1. 23. 15:17

친구와 간단한 프로젝트를 마치고 배포까지 완료하고 연동을 확인해 보던 중 문제 발생했습니다.

Mixed Content Error

크롬 개발자 모드 콘솔에 찍여있는 오류인데 react는 서버는 https이고 백엔드 서버인 ec2서버는 http라서 발생하는 문제인 거 같아 보입니다. 이 문제를 해결하기 위해서는  ec2 서버에도 https를 적용시켜야 합니다. 

 

http와 https에 대해서는 다른 글에서 따로 정리하겠습니다.

 

 


https 연결 Flow

https 연결을 위한 flow입니다

 

로드밸런서를 이용한 방식으로 클라이언트가 https로 로드밸런서와 통신을 하고  로드밸런서와 api를 제공하는 주체는 http로 통신하는 방법입니다.

 

준비물 및 순서

ec2 서버와 도메인이 필요합니다.(4번과 5번은 2편에서 정리할 예정입니다)

 

1. 도메인 구매

2. 도메인 인증 

3. 인증서 발급 및 적용

4. 타겟 그룹 설정

5. 로드벨런서 설정 

1. 도메인 구매 ( 가비아)

 ec2 서버에 https를 연결하는 글이므로 ec2서버는 준비가 되어있을 것으로 보고 도메인 구매부터 진행하겠습니다

 

먼저 도메인 하나가 필요합니다. 저는 가비아라는 사이트에서 도메인을 구매하였습니다.

무료 도매인 사이트도 있었는데 제가 진행할 당시에는 페이지에 오류가 있는지 진행이 어려워서 유료인 가비아를 이용했습니다.

 

https://www.gabia.com/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

 

 

가비아에서는 원하는 도메인 이름을 검색해서 연 단위로 구매할 수 있는데, 이벤트 가격은 1년만 적용되기 때문에 구매할 때 기간을 1년으로 바꿔주셔야 저렴하게 이용이 가능합니다. (디폴트는 3년으로 되어있더라고요)

한 번 구매하면 따로 과금되는 것은 없고, 구매한 기간이 지나면 자동으로 소유권이 없어집니다. ( 구매 금액 이외의 추가 금액 X )

 

2. 도메인 인증 (Route 53)

도메인이 준비가 되었다면 인증서를 발급하기 전에 먼저 구매한 도메인에 대한 소유권 인증을 해야 합니다.

AWS 계정에 로그인하여 Route 53 서비스로 이동합니다.

 

  • 가장 먼저 보이는 대시보드에서  호스팅 영역을 누르고

  • 호스팅 생성으로 들어갑니다

  • 도메인 이름에는 위에서 구매한 도메인 주소를 여기에 적어주면 됩니다.
  • 그러고 다른 설정은 그대로 둔 채  맨 밑에 생성을 클릭합니다

 

  • 생성을 완료하면 생성된 호스팅 영역의 세부정보을 확인할 수 있습니다 
  • 호스팅 영역 세부 정보를 보면 이름서버 4줄을 확인할 수 있는데 이걸 구매한 도매인의 네임서버에 넣어줘야 합니다.

 

가비아를 기준으로 My 가비아 > 이용중인서비스 - 도메인  > 관리(연결할 도메인의) > 네임서버 - 설정에 들어갑니다

  • 호스팅 영역 세부 정보의 이름서버 4줄을 여기 1~4차에 순서대로 넣어주시면 됩니다
  • 소유자 인증까지 하고 적용을 누르면 완료입니다

 

3. 인증서 발급 및 적용 

이제 인증서를 발급받아야 합니다. 인증서는 aws carticate에서 발급받았습니다.

aws에서 aws carticate으로 들어갑니다.

  • 인증서 요청을 눌러서 새로운 인증서를 발급받아야 합니다.

 

  • 퍼블릭 인증서를 누르고 다음으로 갑니다

 

  • 정규화된 도메인 이름에는 위에서 구매한 본인의 도메인을 적어줍니다. ex) example.com
  • 이 외의 다른 옵션은 디폴트로 두고 요청을 눌러주면 인증서 생성이 완료되었습니다.

 

  • 인증서 나열에 들어가면 방금 생성한 인증서를 볼 수 있습니다.
  • 상태, 사용 중, 갱신자격 항목이 다음과 같이 나와도 정상적으로 생성이 된 것입니다

 

이제 발급받은 인증서를 등록하겠습니다.

인증서 ID 부분을 눌러 인증서의 상세항목으로 들어갑니다.

  • Route 53에서 레코드 생성을 클릭합니다.

 

  • 해당 도매인을 체크하고 레코드 생성을 클릭하면 완료입니다.

 

  • 다시 Route S5에 들어가면 CNAME 레코드가 생성된 것을 확인할 수 있습니다.

 

  • 인증서의 상태가 다음과 같이 변경되어 있으면 여기까지 성공적으로 완료한 것입니다.
  • 변경되는 시간은 차이가 있다고 합니다. ( 보통 20분~2시간 그 이상이면 지금까지 과정을 다시 한번 점검해 보세요 )

 

 

여기까지 ec2에 https를 적용하기 위한 1편 마무리하겠습니다. 

 

정리

1편에서는 사용할 도메인을 준비하고, 도메인에 대한 소유권 인증과, 인증서를 발급 및 적용을 하였습니다.

2편에서는 로드벨런서를 통하여 https로 들어오는 요청을 ec2서버로 연결시키는 작업을 해 주겠습니다.