크롬에서 HSTS를 통해 .dev 도메인을 HTTPS로 강제로 전환하는 이슈

어제부터 갑자기 크롬으로 개발하는 사이트의 URL이 접속이 안되는 문제가 발생했다.

.dev 도메인을 모두 HTTPS 프로토콜로 전환시키는 문제로 인해 인증서 관련 오류가 났는데 이 문제는 어찌어찌 해결을 했는데, 현재 진행하는 프로젝트가 웹소켓을 쓰고 있어서 웹소켓 프로토콜까지 WSS://로 다 변경해줘야하는 문제가 있었다.

그리고 근본적인 원인을 찾아야 할 것 같아서 검색해 본 결과 다음과 같은 글을 발견했다.

Chrome to force .dev domains to HTTPS via preloaded HSTS

HTST는 HTTP로 접속 후 HTTPS로 리다이렉트 할 경우 생길 수 있는 취약점을 아예 원천적으로 막도록 브라우저에서 HTTPS로 접속할 사이트들을 강제하는 것인데 이 해당 도메인 리스트에 *.dev가 포함된 것으로 보인다.

그래서 pow나 puma-dev같이 .dev로 끝나는 도메인을 도메인으로 만들어주는 애들을 다른 도메인으로 변경하는 것을 권장하고 있어 보인다.

POW 해결책

제일 유명한 pow.cx에서는 이 부분을 .test 도메인을 디폴트로 변경해서 해결 한 것으로 보이는데 만약 이가 되어있지 않다면 ~/.powconfig에서 아래와 같이 설정한다.

export POW_DOMAINS=test,local

아니면 최신 버전으로 재설치하길 권장한다.

puma-dev 해결책

pow를 이용하는 것 같아서 똑같이 하려했는데 안됨.

puma-dev install를 다시 진행했다.

puma-dev -install -d test

이렇게 진행하면 .test로 접속이 가능해진다.

결론

.dev를 사용할 방법은 있는 것 같지만 좋은 방법은 아니니 권장하지 않고 .localhost.test 같은 다른 도메인을 이용하길 권장하는 것 같다.

참조한 사이트

  1. Pow User’s Manual
  2. puma-dev github issue: Chrome to force .dev domains to HTTPS via preloaded HSTS
  3. HSTS (HTTP Strict Transport Security) 개념과 설정
  4. Chrome to force .dev domains to HTTPS via preloaded HSTS