2019.10.30 EC2에 클론서버 만들어보려다가 HSTS 때문에 삽질한 이야기

일단 현재 실섭을 Clone해서 똑같은 환경으로 만들어 보는 것을 목표로 하고 있다.

웹서버, wsgi를 제외한 다른 사항들은 거의 다 마무리가 되었는데, 웹서버(nginx)를 설정하다가 뻘짓을 했다.

일단 도메인, 서버네임 설정을 하나도 안 한 상태로 add_head 'Strict-Transport-Security' 설정을 했다. 기간은 1년으로...

진짜 nginx의 기본 옵션에 말 그대로 저거 하나만 추가한 셈.

그렇게 하니 HSTS 때문에 내 PC, 정확히는 내 PC의 브라우저에서 접속이 계속해서 https로만 강제되고 접속이 거부되었다.

처음에는 nginx의 설치문제 혹은 service를 잘못 등록한 문제인 줄 알고 별의 별 짓을 다 해보았는데 안되어서 절망했다 ㅜㅜ.

nginx만 한 수십번 지웠다 재설치 한듯..ㅎㅎ (덕분에 유용한 명령어도 알아가지만...)

어쨌든 대체 nginx가 왜 장난 치는지 이해가 안 되던 중에 인스턴스에서 curl 루프백 하니까 페이지가 뜬다.

여기서 헐! 싶었다. 여태까진 nginx가 문제라 생각했는데 nginx는 잘 돌아가고 있었다.

뭔가 이상하다 싶어서 parallels를 키고 IE를 통해 접속하니까 잘 됨! 와이파이 끄고 폰으로 들어가도 잘 보인다... 허걱!

사실 이 문제가 지속될 때 시작할 때 저 망할 헤더를 추가한 뒤에 갑자기 접속이 안되길래 "아 이거 htst문제 아니야..?" 라고 짐작하고 넘어갔는데 이 후에는 nginx의 문제라고 시야가 점차 좁혀졌다.

그 순간 다시 HTST를 의심하기 시작했고 역시나 내 PC에서 접속하니 HTTP가 아닌 HTTPS로 접속이 강제되는 것을 볼 수 있었다 ㅠㅠ

그래서 크롬에서 htst 설정 된 사이트를 해제하려고 가서 query domain에 IP주소, nginx 설정의 서버네임등등을 계속 넣어봤지만 모두 not found.

중간에 내가 서버이름을 바꾸었다가 다시 되돌려놨다가 등등 어지럽힌 기억도 있고 해서 안된다고 생각했다.

결국 해결은 현재 가지고 놀던 인스턴스의 AMI를 만들고 이걸 바탕으로 새로 런칭하기를 해봤다.

후우 그렇게 하자마자 잘 됨.

어쨌든 이런 삽질을 통해 HSTS, 약간의 리눅스 명령어, nginx의 config 및 주의할 점에 대해 배운 것 같다.


* appendix

netstat -tlnp  ==> 현재 프로세스와 사용중인 포트
ps aux | grep nginx ==> 현재 프로세스 목록 중 nginx를 description에 달고 있는 목록 노출 (ps aux만 하면 당연히 다 나옴)
sudo service [name] [action] 등..


댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용