2022. 11. 22. 15:30

'ASP.NET Core'의 기능으로 쿠키를 저장하는데....

로컬에서는 잘되지만, 배포를 하면 저장되지 않는 현상을 겪었습니다.

 

같은 IIS인데 로컬호스트로 접속하면 되고

외부에서 접속하면 안 되는 현상이죠.

 

 

1. 원인

이런 경우 거의 보안 문제 때문에 그렇습니다.

로컬로 접속하면 보안이 느슨해져서 되는 거죠.

 

그래서 생각해보니 쿠키를 저장할 때 

Secure : HTTPS에서 암호화 되었을 때만 쿠키를 전송

HTTPOnly : 자바스크립트에서는 해당 쿠키에 접근 못하게 함

옵션이 켰다는 게 생각났습니다.

 

'HTTPOnly'옵션은 이 문제와 상관없지만 

'Secure'옵션을 넣으면 HTTPS에서만 쿠키에 접근할 수 있습니다.

 

 

2. IIS에 임시 SSL 생성하기

개발단계에서 정식 SSL을 발급받는 건 귀찮고, 

그렇다고 모든 쿠키에 'Secure'옵션 뺄 수도 없는 노릇이니

일단 임시 'SSL 인증서'를 생성하여 해결해야 합니다.

 

IIS 루트(홈)에서 '서버 인증서'를 찾아 들어갑니다.

 

 

'자체 서명된 인증서 만들기'를 선택합니다.

'인증서 이름 지정'에 원하는 이름을 넣고 확인합니다.

 

생성된 인증서가 보입니다.

 

 

3. 확인하기

이제 외부에서 접속해보면 인증서 오류 때문에 바로 접속이 되지 않습니다.

 

고급 > [주소](안전하지 않음)

을 눌러 접속합니다.

 

인증서 오류와 함께 접속됩니다.

 

이제 쿠키도 저장 잘됩니다.

 

 

마무리

이제는 웹 환경이 SSL을 전제로 동작하다 보니 테스트할 때 염두에 둬야 할게 많아졌네요.

이것도 프로토타입을 외부인에게 보여주려고 하다가 안 된다는걸 알았습니다 ㅎㅎㅎㅎ