숙원사업이던 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로 처리되게 해야함을 알 수 있었다.
참고자료
'Project' 카테고리의 다른 글
[간단한 퀴즈 서비스] 배포 3/3 (0) | 2024.11.19 |
---|---|
[간단한 퀴즈 서비스] 배포 2/3 (4) | 2024.11.18 |
[간단한 퀴즈 서비스] 2차 개발 회의 (2) | 2024.11.16 |
[간단한 퀴즈 서비스] 1차 개발 회고 (0) | 2024.11.15 |
[간단한 퀴즈 서비스] Day20~21 1차 개발 마무리 (0) | 2024.11.14 |