Blog on Iterating

Cloudflare Flexible SSL 설정 문제

문제 확인

iterating.io 도메인으로 접속이 안되는 것을 확인했다.

원인 파악

서버 확인

서버 내 nginx의 로그에도 별다른 내용이 확인되지 않았다.
운영중인 다른 서비스는 어떤지 접속해보았다. 정상적으로 접속된다.
최근 서버를 변경하지는 않았으니, 내부 문제는 아닐 것이라고 판단하고 다음 단계로 넘어갔다.

네트워크 확인

관리하고 있는 도메인 중에 접속되는 도메인과 iterating.io 도메인을 비교하기로 했다.
다른 도메인은 예상한 결과가 나왔지만 iterating.io는 다음과 같았다.

$ nslookup -q=A iterating.io
Non-authoritative answer:
Name:	iterating.io
Address: 172.67.216.76
Name:	iterating.io
Address: 104.21.24.18

저 아이피는 뭐지?

레코드를 확인하기 위해 cloudflare 대시보드에 접속했고 레코드 값을 확인했다. 정상이었다.
다만, 해당 레코드에 대해 프록시 설정이 되어있는 것을 확인했다.
'프록시에서 내 서버로 접근이 안되고 있나보네?'
바로 위 아이피를 검색했고 cloudflare의 프록시 서버 주소임을 확인했다.

현상 확인

조금이라도 단서를 찾기 위해서 브라우저에서 다시 도메인으로 접근을 시도해보았다.

접속을 시도하니 이번에는 ERR_TOO_MANY_REDIRECTS가 출력된다.

리다이렉트 경로는 https://iterating.io.

현재 내가 관리하고 있는 origin 서버의 nginx에서는 HTTP 요청이 들어오면 HTTPS로 리다이렉트 하도록 설정되어 있었다.

하지만, 브라우저에서는 HTTPS로 요청을 하고 있었기 때문에 중간에 위치한 cloudflare의 프록시를 의심하게 되었다.

다시 cloudflare의 메뉴를 확인하니 SSL/TLS 메뉴가 보인다.

프록시의 암호화 모드는 Flexible이었다.

친절하게 그림으로 해당 모드에 대한 암호화 적용지점을 그림으로 설명해주고 있다.

이 설정이 문제의 원인이었다.

브라우저에서 HTTPS 통신을 하더라도 프록시에서는 HTTP 통신을 하고 있기 때문에 리다이렉트가 발생한 것이다.

문제 해결

다음의 FULL(strict) 모드로 변경해주었다.

변경한 후 정상 접속을 확인하였다.