가난한 개발자는 무료 서버를 사용할 수 밖에 없고 8,000km나 떨어진 서버를 사용하는 사이트에 접속하면 속도는 끔찍한 경우가 대부분이다. 특히나 메인페이지에 접속할때마다 자체 이미지 호스팅 서버에서 수많은 이미지를 불러오고, db 서버에서 복잡한 조회 쿼리를 실행하는 내 사이트의 속도는 최악 중의 최악에 치달았다. 이를 해결하기 위해 방법을 찾아보다 CDN 서비스라는 것을 알게 되었고, 그 중에 전세계 1등 CDN 서비스 회사인 Cloudflare를 사용하게 되었다. DNS 설정을 하고, 처음보는 서비스가 신기해 이것저것 설정을 해본 후 속도가 얼마나 빨라졌나 기대를 하며 내 사이트에 접속을 하는데! 이게 뭐람? 정상적이던 내 사이트가 갑자기 접속이 안 되기 시작했다. ERR_SSL_PROTOCOL_ERROR라는 유언을 남긴 내 서버를 살리기 위해 방법을 찾아본 결과 기존 NPM에서 설정한 ssl 인증서와 cloudflare의 ssl 설정에서 충돌이 발생한 것 같았다. 이를 해결하기 위해 NPM에서 cloudflare의 인증서를 사용하게끔 수정해보았다.
cloudflare api 토큰 세팅
1. 개요 탭에 접속하여 하단에 있는API 토큰 가져오기 페이지로 이동한다.
2. 토큰 생성 페이지로 이동한다.
3. 영역 DNS 편집 템플릿을 사용한다.
4. 영역 리소스를 모든 영역으로 설정한 후 요약 페이지로 이동한다.
5. 토큰 생성 버튼을 클릭한다.
6. 생성한 토큰을 복사해둔다.
NPM 세팅
1. NPM의 SSL Certificates 탭의 Add SSL Certificate 버튼을 클릭한다.
인증서 정보를 입력한 후 저장한다(저장 시 약간의 시간이 소요됨).
범용 도메인명 입력
DNS Challenge 설정
DNS Provider - Cloudflare로 설정
Credentials File Content에 api_token 부분을 복사한 토큰으로 수정
약관 동의
3. 기존 proxy host를 수정하거나 새 proxy host를 추가할때 ssl 탭에서 SSL Certificate를 저장한 인증서로 저장해준다.