워드프레스: 특정 페이지에만 보안서버 SSL 인증서를 적용하는 방법

워드프레스 정보를 제공하는 블로그 Avada 2018. 9. 4. 16:11 • 댓글:

SSL 인증서를 웹서버에 설치하면 자물쇠(Padlock)와 https 프로토콜[over port 443]을 활성화하고 웹서버와 브라우저 사이에 보안 연결이 이루어지도록 합니다.

SSL 인증서를 설치하고 체크아웃(결제) 페이지나 일부 페이지에만 SSL을 활성화하고 싶은 경우가 있을 수 있습니다. 이 경우 다음 코드를 테마의 함수 파일(functions.php)에 추가하면 됩니다.

function crunchify_force_ssl( $force_ssl, $post_id = 0, $url = '' ) {
    // List of post or page IDs on which you need SSL cert
    // SSL 인증서가 필요한 포스트나 페이지의 ID 리스트
    $list_of_post_page = array(2343, 153, 54, 5);
  
    if ( in_array( $post_id, $list_of_post_page ) ) {
        return true;
    }
    return $force_ssl;
}
add_filter('force_ssl' , 'crunchify_force_ssl', 10, 3);
// 출처: crunchify.com

가능한 한 차일드 테마(자식 테마)를 만들고 차일드 테마 내의 함수 파일에 추가하시기 바랍니다. 그렇지 않으면 테마가 업데이트될 때 사용자가 입력한 코드가 사라지게 됩니다.

참고로 관리자 패널(admin panel)에 워드프레스 SSL을 설정하려는 경우 다음 코드를 wp-config.php 파일에 추가하면 됩니다.

define('FORCE_SSL_ADMIN', true);

그러면 전체 관리자 페이지가 SSL을 통해 강제로 로드됩니다.

로그인 페이지에 SSL을 적용하려는 경우 다음 코드를 사용할 수 있습니다.

define('FORCE_SSL_LOGIN', true);

이 코드를 추가하면 로그인 페이지와 회원가입 페이지가 SSL로 로드됩니다.

통계에 의하면 작년에 전세계적으로 60% 이상의 사이트가 https로 로드된다고 합니다. 그리고 최근 구글 크롬이 업데이트되면서 http로 로드되는 사이트에 '주의 요함' 경고 문구가 표시되고 있습니다.

주의 요함 경고

이제 SSL 보안서버 인증서를 적용하지 않으면 SEO에 불리하게 작용할 수 있습니다. (8월 말에 티스토리에서도 전체 티스토리 블로그에 SSL을 적용했습니다.)

국내에서는 아직 많은 웹호스팅 업체가 유료로 SSL 인증서를 제공하고 있습니다. Bluehost(블루호스트), SiteGround(사이트그라운드) 등 해외호스팅에서는 무료로 SSL 인증서를 제공합니다. 특히 사이트그라운드는 와일드카드 인증서까지 제공하므로 서브도메인(2차 도메인)에도 SSL 인증서를 적용할 수 있습니다.