안녕하세요.
현재 HTTPS로 운영되는 서비스를 운영하고 있는데,
일부 URL을 인앱 브라우저로 접속시 모든 XHR 요청이 거절되는 이슈가 발생하고 있습니다.
현재 서비스가 AngularJS 기반의 SPA (Single page application) 인 상태라, XHR에서 이슈가 발생하여 서비스 사용에 어려움을 겪고 있습니다.
일단, 현재 HTTP 요청은 NGiNX가 요청을 받아 Node.js 서버로 reverse proxy되게 구성된 상태입니다.
HTTPS를 사용하고 있고, HTTP로 접속하는 경우, 다음과 같이 HTTPS URL로 Redirect 처리되게 설정되어 있습니다.
일반적인 HTTPS 서비스들과 다를 것 없지요 ^^:
아무튼, 이 상황에서 카카오톡으로 URL을 공유하면 다음과 같은 이상한 결과가 나옵니다.
- lawtalk.co.kr 링크로 공유: 주소창에 https://www.lawtalk.co.kr 로 표시, 모든 XHR 요청 정상 작동
- www.lawtalk.co.kr 링크로 공유: 주소창에 http://www.lawtalk.co.kr 로 표시, 모든 XHR 요청 비정상 작동 (웹서버에는 https://www.lawtalk.co.kr 에 대한 초기 페이지 요청만 로깅되어 있음)
- https://www.lawtalk.co.kr 링크로 공유: 주소창에 https://www.lawtalk.co.kr 로 표시, 모든 XHR 요청 정상 작동
- http://www.lawtalk.co.kr 링크로 공유: 주소창에 http://www.lawtalk.co.kr 로 표시, 모든 XHR 요청 비정상 작동 (웹서버에는 https://www.lawtalk.co.kr 에 대한 초기 페이지 요청만 로깅되어 있음)
무엇보다, http로 표시되는 경우 브라우저에서 location object를 alert으로 직접 찍어보면 protocol이 http로 변조되어 있습니다. (실제로 접속한건 HTTPS인데!)
아무튼, 이로 인한 이유로 protocol이 변조되어 Origin이 https가 아닌 http protocol base로 변경되고,
결정적으로 XHR 요청시 (e.g. /api/some-endpoint 에 대한 요청을 보내는 경우) HTTPS 입장에서는 Insecure한 HTTP 요청을 보내게 되는 것이므로 access violation으로 인해 요청 자체가 거절되고 있는 것으로 보입니다.
저는 iOS 버전의 카카오톡 5.6.5를 사용하고 있으며,
iOS 9.3.1 / iPhone 6+ 단말을 사용하고 있습니다.
해당 이슈 확인 부탁드리겠습니다.
감사합니다.