본문 바로가기

Project

[간단한 퀴즈 서비스] 배포 1/3

  숙원사업이던 devsimplequiz의 배포를 마침내 진행하게 되었다.

 

freetier 계정으로 ec2 메모리 1GB짜리 서버에서 진행했다.

서비스를 올리고 나름 순탄하게 진행되는 것인가 하였지만,

로그인한 뒤 JWT로 만든 access token을 쿠키에 담아서 보내는 부분에서 문제가 생겼다.

 

 

이슈 내용

  • EC2에 올린 서버에서 쿠키 설정은 Secure로 되어있지만 https로 처리 되게 하지 않았기에 문제가 발생하였다
  • https가 되도록 nginx를 docker를 이용해서 ec2에서 띄웠다.
  • nginx를 docker로 굳이 띄운 이유는 ec2에서 직접 nginx 설정하다가 문제 생기면 ec2 세팅한 서버에도 영향이 갈 수 있다 생각되어 docker로 분리하였다
  • 열심히 Let's Encrypt certificate 도 받고 구글링과 GPT를 동원하며 nginx 설정을 이렇게 저렇게 바꾸어보았지만 설정이 잘못되는 경우 docker 컨테이너로 된 nginx에 접근할 수 없었다. 해당 컨테이너들은 먹통이 되었다.
  • 새로 컨테이너를 만들고, 다시 컨테이너 내부로 들어가서 Let's Encrypt certificate 를 발급 받고 nginx 설정을 이렇게, 저렇게 바꾸어 시도해보았지만 새벽 시간만 지나갔다.
  • 이번에 쿠키 옵션을 바꾸어서 secure를 false로 주고 나머지 설정은 아래와 같이하여 시도해보았지만 여전히 쿠키에 잘 전달되지 않았다.
 COOKIE_OPTION: { httpOnly: true, secure: false, sameSite: "Lax" },
  • secure가 false이면 같은 주소의 사이트에서 주는 요청만이 가능하였다.

 

결국 EC2에 올린 서버에서 쿠키를 이용한 인증, 인가가 가능하게 하려면

도메인 구매하여 같은 주소로의 요청이 되게 하는 것https로 처리되게 해야함을 알 수 있었다.

 

참고자료