본문 바로가기
Projects/푸하하 - 개인 프로젝트

[트러블] 서버 배포하기 - 쿠키가 생성되지 않는 이슈. (Same-site : none 설정)

by 우인입니다 2023. 11. 6.

문제발생 

문제분석

 

1. 백엔드에서 jwt를 발급은 문제 없다.

 

2. 클라이언트에 Set-Cookie헤더가 잘 담겼다.

 

3. SameSite이슈로 Set-Cookie가 막혔다.

 

 

원인 분석

  1. 기존 로컬환경에서 백엔드 서버를 AWS EC2상에 올리자 클라이언트가 이를 Same-site로 인식하지 않게되어 쿠키 생성이 되지 않는다.
  2. 왜냐하면 Same-site=Lax로 기본값인데 이는 'safe'한 요청인 Get 메소드, <a href="">, <link rel="prerender">의 접근만 허용한다.
  3. 그래서 이제 Cross-site로 인식되는 백엔드 서버로 오는 Set-Cookie가 작동하지 않음.

 

해결방법

  1. 응답을 Same-Site : None으로 설정해준다.
  2. 그러기 위해선, Secure를 설정해줘야한다.
  3. 그러기 위해선, SSL 인증서를 발급받아야 한다.
  4. 그러기 위해선, 도메인을 설정해야 한다.
    • EC2의 엔드포인트를 바로 설정했더니 그렇게 바인딩 되는 것은 권장되지 않고 내가 시도한 인증서 발급프로세스에서도 거부당했다.

생 엔드포인트로 SSL 발급하려던게 거부당했다.

 

GPT says. 그렇다고 한다.

 

 

 

도메인 등록

https://thiswooin.tistory.com/115

 

SSL 인증서 발급

https://thiswooin.tistory.com/117

 

Spring Boot적용 https 포트 열기

https://thiswooin.tistory.com/118

 

위의 과정을 마치고 프론트, 백엔드 모두 https로 통신할 수 있게 환경이 마련됐다.

Same-site : None; Secure; 가 적용된 쿠키.

 

드디어, Cookie가 Set-cookie 헤더에 담긴 값으로 쿠키가 생성됐다.