HTTP가 자동으로 HTTPS로 넘어가는 걸 막아보자
이번에 만들게 된 챌린지 플랫폼이 http로 서비스되고 있다.
하지만 브라우저에서 접속을 할 경우 https로 자동으로 연결되어 "ERR_SSL_PROTOCOL_ERROR"를 자꾸 띄우게 되었다
HSTS 우회
그래서 Cloudflare를 이용해 http요청을 https로 자동으로 바꾸는 HSTS를 우회하기로 했다.
우선 Cloudflare에 기존의 DNS 설정을 넘겨주기 위해선, 기존 DNS 설정의 NS를 바꿔줘야한다.
이렇게 Cloudflare에 적혀있는 네임서버로 기존의 DNS서비스에서 등록을 해주면 되는데, 나중에 포스팅하려고 한다.
암튼... 이렇게 Cloudflare로 이전이 완료되었다는 가정하에 진행을 하자면,
우선 HSTS에 대해 알아보자
HSTS란?
HSTS란 HTTP Strict Transport Security의 약자로 웹사이트에 접속할 때, 강제적으로 HTTPS로 연결되는 기능을 말한다.
HTTPS가 보안에 더 유리하기 때문에 생긴 기능인 것 같다.
HSTS는 서버와 브라우저에서 지원하는 기능으로 양쪽에서 모두 설정해 줄 수 있다. 또한 최근의 브라우저는 기본적으로 HSTS가 기본적으로 설정이 되어있다고 한다.
위 그림과 같이 http요청이 들어오면 서버가 301 redirect을 시켜 https로 요청을 보내게 되고, 해당 요청에 응답을 하여
결과적으로는 http요청이 https로 요청되는 원리이다.
HSTS 우회적용
그렇다면 HSTS를 사용하지 않으려면 브라우저에서 설정을 끄거나, 서버에서 HSTS를 사용하지 않아야 한다.
하지만 최신의 모든 브라우저가 HSTS가 자동으로 적용되기 때문에,
우리 서비스를 이용하려면 브라우저에서 HSTS 설정을 꺼주세요!! |
이렇게 요청을 할 수가 없다.
Cloudflare의 end-to-end https 옵션은 위와 같은데 유연이라는 정책을 사용하면 브라우저는 https요청을 cloudflare에 보내게 되지만, cloudflare가 중간에서 http로 바꿔서 응답을 주는 형태가 되는 것 같다.
바로 이런 식으로 적용이된다.
https 유연 정책 설정하기
https 유연 정책을 사용하기 위해선,
일단 cloudflare에서 dns부분에 A레코드의 프록시 상태를 DNS전용에서 프록시로 변경해준다.
그리고 규칙 혹은 page rules에 들어가서 룰을 생성하면 되는데,
이렇게 원하는 도메인에 대해서 SSL을 가변으로 설정해주면 된다.
그러면 잘 적용이 되는 것 같다.
'SECURITY' 카테고리의 다른 글
SSH 비밀번호 없이 key로 로그인하기 (putty, vscode, heidi sql, filezilla 적용) (1) | 2021.09.06 |
---|---|
chrome 개인정보 보호 오류 해결하기 (11) | 2021.07.14 |
WebGoat 7 설치하기 Centos (0) | 2018.10.17 |
댓글