최신글

cafe24 wordpress를 cloudflare연동할 때 주의할점, ssl 인증서 갱신 오류

반응형
Cafe24에서 구매한 도메인의 NS 레코드를 Cloudflare에 위임하면 Cafe24 SSL 인증서 자동 갱신이 중단됩니다. Cloudflare SSL 모드를 Flexible로 변경하고 WordPress 설정을 수정하여 해결하는 방법을 정리합니다.

 

만난 오류

Cafe24에서 구매한 도메인을 Cloudflare NS에 등록해서 WordPress 블로그를 운영하고 있었습니다. 잘 되다가 어느 시점 이후부터 Cafe24 SSL 인증서 갱신이 실패하면서 Cloudflare에서 Origin SSL 에러가 발생했습니다.

 

오류 원인

Cloudflare에 Cafe24 도메인의 NS 레코드 관리를 위임한 것이 원인이었습니다.

 

Cafe24는 자사에서 구매한 도메인을 Cafe24가 직접 관리해야만 SSL 인증서를 자동 갱신합니다. NS 레코드 관리를 Cloudflare에 위임하면 Cafe24 입장에서는 관리 대상 도메인으로 취급하지 않아 SSL 인증서 갱신을 하지 않습니다.

 

그래서 인증서 갱신일이 되기 전까지는 WordPress가 정상 접속되었지만, 인증서가 만료되면서 에러가 발생한 것입니다.

 

오류 해결 방법

Cloudflare에서 Cafe24 WordPress를 호출할 때 HTTP로 변경해야 합니다. Cafe24에서 인증서 갱신을 못하니 어쩔 수 없이 HTTP 통신으로 변경합니다.

WordPress 최초 진입 구간은 Cloudflare이고, Cloudflare가 HTTPS 통신을 하기 때문에 WordPress를 HTTP로 변경해도 보안에 문제될 건 없어 보였습니다. 다만, WordPress는 Cafe24만 접속할 수 있도록 IP 접근 제한을 걸어야 합니다. WordPress 주소에 HTTP로 누구나 접근할 수 있기 때문입니다.

 

WordPress를 HTTP로 호출하려면 3단계를 설정합니다.

 

1단계. Cloudflare에서 WordPress 호출을 HTTP로 변경

Cloudflare 메뉴에서 SSL/TLS -> Overview -> Flexible로 변경합니다.

 

Flexible은 Cloudflare가 원본 서버(WordPress)를 호출할 때 HTTP로 호출하는 모드입니다.

 

2단계. WordPress의 wp-config.php 설정

WordPress를 HTTP로 설정하면 이미지 등 에셋이 보이지 않게 됩니다. 에셋 URL이 HTTPS 기준으로 되어 있기 때문입니다.

 

이 문제를 해결하려면 Cloudflare가 HTTP로 호출하더라도 WordPress가 HTTPS로 요청받은 것처럼 동작하게 설정해야 합니다. 그래야 WordPress가 반환하는 에셋 URL이 HTTPS로 응답됩니다.

 

wp-config.php에서 아래 코드를 추가합니다.

if (isset($_SERVER['HTTP_CF_VISITOR'])) {
  $visitor = json_decode($_SERVER['HTTP_CF_VISITOR']);
  if ($visitor && $visitor->scheme === 'https') {
    $_SERVER['HTTPS'] = 'on';
  }
}

define('WP_HOME', 'https://{yourdomain}');
define('WP_SITEURL', 'https://{yourdomain}');

 

만약 이미지 등 에셋이 안 보여도 괜찮다면 아래처럼 설정하면 됩니다.

define('WP_HOME', 'http://{your-domain}');
define('WP_SITEURL', 'http://{your-domain}');

 

3단계. IP 접근 제한

WordPress는 Cloudflare만 접근하도록 설정합니다. Cafe24 WordPress는 Apache로 호스팅하므로 .htaccess 파일에 Cloudflare IP를 추가하면 됩니다.

<IfModule mod_authz_core.c>
      Require ip 173.245.48.0/20
      Require ip 103.21.244.0/22
      Require ip 103.22.200.0/22
      Require ip 103.31.4.0/22
      Require ip 141.101.64.0/18
      Require ip 108.162.192.0/18
      Require ip 190.93.240.0/20
      Require ip 188.114.96.0/20
      Require ip 197.234.240.0/22
      Require ip 198.41.128.0/17
      Require ip 162.158.0.0/15
      Require ip 104.16.0.0/13
      Require ip 104.24.0.0/14
      Require ip 172.64.0.0/13
      Require ip 131.0.72.0/22
</IfModule>

 

Cloudflare IP는 아래 페이지에서 확인할 수 있습니다.

 

Cloudflare IP 주소는 수시로 변경될 수 있으니 update history를 정기적으로 확인해야 합니다.

반응형