본문 바로가기
카테고리 없음

[3] CloudFlare를 이용해서 IP 숨기기

by Riverandeye 2020. 10. 14.

지금 배포하고 있는 개인 planner랑 스토리지 서비스 (cloud.riverandeye.com) 가

집에 있는 라즈베리 파이를 쓰다 보니 발급받은 IP가 그대로 노출되는 문제가 있었습니다.

이를 해소하기 위해 무료 솔루션들을 찾아보다가 Cloudflare 라는 것을 알게 되었습니다.

 

우선 먼저 CloudFlare 사이트에 접속하신 후 가입을 합니다. 

CloudFare를 사용하기 위해서 Site를 등록한 후, 

개별적으로 구매한 도메인을 등록하기

 

Plan을 선택하고, DNS 설정을 하면 등록이 완료됩니다. 

아직 끝난 것은 아니고, 해당 도메인의 네임 서버를 cloudfare의 것으로 변경해주어야 합니다.  

다음 주소로 네임서버 변경을 해달라고 합니다

네임서버를 변경할 땐 자기가 도메인을 구매한 곳에서 변경하면 됩니다. 

저 같은 경우엔 AWS에서 구매를 했기 때문에, Route53 > 등록된 도메인 > 도메인 선택 > 이름 서버 편집 을 통해 편집하였습니다. 

 

cloudflare 로 변경

이렇게 등록하고 나서 다시 사이트에 들어가보면 name server가 확인되었다고 뜹니다. 

 

Active!

디테일한 DNS 설정을 위해 DNS 탭으로 들어가서 원하는 도메인 혹은 서브도메인을 등록해줍니다. 

 

대충 이렇게..

저같은 경우엔 riverandeye.com 페이지를 Notion 을 이용하기로 결정했기 때문에 (자기소개에 너무 힘주고 싶지 않아서)

다음과 같이 CNAME을 notion.so 로 등록해주고

해당 경로로 요청이 왔을 때 제 Notion URL 로 리다이렉트하게끔 Worker를 설정하였습니다. 

그 후 Worker에 지정된 Route를 등록하였습니다. 

 

요청마다 Lambda 같이 Response를 해줌

 

해당 Worker 소스는 좋은 개발자분의 블로그를 통해 알게 되었습니다. 감사히 잘 사용하겠습니다 :)

 

Cloudflare의 아주 큰 장점이 https 요청에 대한 인증서가 무료로 발급이 된다는 점에 있습니다.

 

Troubles

기존 서비스를 nginx를 이용하고 LetsEncrypt를 이용해 https로 서비스하고 있었고

80번 포트를 자동으로 443으로 리다이렉트를 시켜줬었는데

CloudFlare를 붙이고 나니 이게 80번으로 자꾸 요청을 하는지 

80 -> 443으로 리다이렉트 후 CloudFlare가 80으로 다시 요청을 해서 무한 루프가 도는 것으로 보였습니다.

 

notion.so의 CNAME을 등록한 www.riverandeye.com  이랑 riverandeye.com 은 문제가 없었는데

A Record로 IP 를 직접 기입한 서비스엔 https 로 요청을 할 수 없으니까 

그런 맴도는 문제가 발생하지 않았나 생각합니다. 

 

그래서 우선 응급처치로 서버 nginx 설정을 모두 80번으로 돌렸는데

어떻게 해야 기존 설정을 유지하고 할 수 있었을까.. 계속 고민해봐야겠습니다. 

아무튼 오늘도 새로운 것을 도입하고 배워서 기분이 좋네용! 다들 즐거운 하루 되길 바랍니다. 

 

Reference

romantech.net/1046

댓글