사이트를 운영하는 사람이든 아니든, 워드프레스(WordPress)가 전 세계 CMS 시장의 60% 이상을 차지하는 가장 인기 있는 콘텐츠 관리 시스템이라는 사실은 누구나 알고 있습니다. 이렇게 방대한 콘텐츠가 오가는 환경에서는 보안이 무엇보다 중요한 과제입니다. 그래서 워드프레스를 운영하는 오토매틱(Automattic)은 최근 Let's Encrypt 프로젝트와 협력해 모든 WordPress.com 사이트에 무료 SSL(Secure Socket Layer) 인증서를 제공하겠다고 발표했습니다.

SSL에 익숙하지 않은 분들을 위해 간단히 설명하면, SSL은 사이트의 보안 수준을 한 단계 끌어올려 주는 기술입니다. 사이트 URL의 'http' 뒤에 's'가 붙어 'https'로 바뀌고, 브라우저 주소창에는 닫힌 자물쇠 아이콘이 표시되어 암호화된 연결임을 알려 줍니다.
그렇다면 직접 호스팅하는(self-hosted) 워드프레스 사이트는 어떨까요? 일반 사이트 운영자도 손쉽게 보안을 강화할 수 있는 방법이 있을까요?
사이트에 SSL을 적용해야 하는 이유
예전에는 SSL과 HTTPS가 전자상거래 사이트만의 전유물처럼 여겨졌습니다. 물론 쇼핑몰에는 여전히 필수적이지만, 요즘처럼 사이버 위협이 날로 늘어나는 환경에서는 일반 사이트도 마찬가지로 암호화가 필요합니다. 암호화되지 않은 사이트는 지식만 있다면 누구나 트래픽을 가로채거나 변조하고 다른 곳으로 우회시킬 수 있기 때문입니다.
독자들 역시 예전보다 훨씬 잘 알고 신중해졌습니다. 의심스러운 사이트를 방문했다가 악성 코드에 감염되거나 해킹을 당했다는 이야기는 이제 흔한 뉴스가 되었으니까요. URL에 'https'가 표시된 사이트는 방문자에게 신뢰감을 주고, 운영자와 독자 모두에게 안정감을 선사합니다.
또 하나 놓치기 쉬운 이점이 있습니다. 구글을 비롯한 검색 엔진은 https를 적용한 사이트에 더 높은 평가를 부여합니다. 즉, 보안이 강화된 사이트일수록 검색 결과에서 상위에 노출되고 자연스럽게 더 많은 트래픽을 끌어모을 수 있습니다.
무료 SSL 인증서 발급받는 방법
얼마 전까지만 해도 SSL 인증서를 적용하려면 비용을 지불하는 것이 유일한 방법이었습니다. 게다가 설정 과정도 만만치 않았습니다. 복잡한 단계와 코드, 번거로운 인증 절차를 거쳐야 했고, 인증서 발급 후에는 URL 변경 사항까지 포함해 사이트 설정을 새롭게 조정해야 했습니다. 그래서 많은 사람들이 고액의 비용을 지불하고 전문가에게 맡기곤 했고, 지금도 그런 경우가 있습니다.
다행히 지금은 상황이 많이 좋아졌습니다. 비용 없이도 손쉽게 SSL 인증서를 확보할 수 있는 방법이 여럿 생겼습니다. 대표적인 방법들을 살펴보겠습니다.
1. 무료 SSL을 기본 제공하는 웹호스팅 이용하기
가장 간편한 방법은 SSL을 기본 탑재한 호스팅 업체를 선택하는 것입니다. 이 경우 고객센터에 문의하기만 하면 인증서를 활성화해 주고, 직접 설정해야 하더라도 cPanel 등을 통해 비교적 쉽게 처리할 수 있습니다.
2. 클라우드 DNS 서비스 활용하기
또 다른 대안은 클라우드 DNS 서비스를 이용하는 것입니다. 대부분의 클라우드 DNS 서비스는 SSL 인증서를 서비스에 포함하고 있습니다. 대표적인 예가 CloudFlare로, 누구나 이용할 수 있는 무료 플랜을 제공합니다. 이런 서비스는 추가 보안 계층을 제공할 뿐 아니라 웹 성능 향상에도 도움을 줍니다.

3. Let's Encrypt 무료 SSL 인증서 사용하기
WordPress.com이 사용하는 것과 같은 Let's Encrypt 무료 SSL 인증서를 직접 활용하는 방법도 있습니다. 다만 문제는 수동 설정이 결코 만만치 않다는 점입니다. 기술에 익숙하지 않은 사이트 운영자라면 복잡한 수동 설정 앞에서 겁부터 날 수 있습니다. 또 하나의 단점은 Let's Encrypt 인증서 유효 기간이 90일뿐이라는 것입니다. 무제한 갱신은 가능하지만, 90일마다 영원히 갱신 작업을 반복하는 것은 여가 활동으로는 좀처럼 매력적이지 않습니다.
다행히 이런 문제를 해결해 줄 플러그인이 있습니다.
필수 플러그인 3종 세트
SSL 직접 설정의 두 가지 핵심 난관은 인증서를 발급받는 것과, 발급 후 사이트를 새 환경에 맞게 조정하는 것입니다. 이 두 가지 문제를 모두 해결하기 위해 무료 워드프레스 플러그인 세 가지를 활용해 보겠습니다.
1. WP Encrypt
WP Encrypt는 Let's Encrypt 서비스를 위한 사용하기 쉬운 워드프레스 클라이언트입니다. 이 플러그인은 사이트에 무료 SSL 인증서를 발급해 줄 뿐 아니라, 만료되기 전 90일마다 자동으로 갱신까지 처리해 줍니다. 덕분에 갱신 걱정은 이제 잊어도 됩니다.
시작하는 방법은 간단합니다. 설정 페이지에서 필요한 항목을 입력하고 체크박스를 선택한 뒤, "Save Changes → Register Account → Generate Certificate" 순서로 버튼을 클릭하면 됩니다.

여기까지 진행하면 이 글의 목표인 '사이트에 무료 SSL 인증서 적용'은 이미 달성한 셈입니다. 하지만 조금 더 나아가 보겠습니다.
2. Remove HTTP
SSL 인증서를 적용하면 'http' 프로토콜이 'https'로 바뀌면서 사이트 콘텐츠에 문제가 생길 수 있습니다. 사이트 URL은 https인데 이미지, 자바스크립트, CSS 같은 리소스가 여전히 http 링크를 참조하면 '혼합 콘텐츠(mixed content)' 경고가 발생합니다. Remove HTTP는 링크에서 'https://'와 'https://' 프로토콜 부분을 제거해 이 문제를 해결하며, 원본 데이터를 영구적으로 변경하지 않는다는 장점이 있습니다.
별도의 설정은 필요 없습니다. 플러그인을 설치하기만 하면 나머지는 알아서 처리됩니다. 모든 링크가 'http:' 또는 'https:' 없이 '//'로 시작하는 프로토콜 상대 URL(protocol-relative URL)로 자동 변환됩니다.
3. Really Simple SSL
WP Encrypt로 인증서를 발급받았다면, Really Simple SSL 플러그인을 활성화해 나머지 작업을 맡길 수 있습니다. 이 플러그인은 다음과 같은 기능을 수행합니다.
- 워드프레스의 SSL 관련 대부분의 문제를 처리합니다. 예를 들어 로드밸런서 문제나 서버 변수 미설정 문제 등이 해당됩니다.
- .htaccess 또는 자바스크립트를 통해 모든 수신 요청을 https로 리디렉션합니다.
- 사이트 URL과 홈 URL을 https로 변경합니다. 단, 외부 도메인으로 연결되는 하이퍼링크는 변경하지 않습니다.
- siteurl과 homeurl을 제외하고는 데이터베이스를 수정하지 않습니다.
물론 경우에 따라서는 몇 가지 수동 설정이 여전히 필요할 수 있습니다.
중요 참고 사항: Remove HTTP와 Really Simple SSL을 설치한 후에도 사이트가 올바르게 구성되지 않거나 아예 구성이 불가능한 경우가 있을 수 있습니다. 이때 첫 번째 선택지는 WP Encrypt 설정 페이지의 안내를 참고해 수동으로 구성하는 것입니다(페이지 우측 상단의 Help 탭을 클릭하세요). 또는 수동 구성을 자동으로 처리해 주는 Really Simple SSL Pro 버전을 이용하거나, 앞서 소개한 다른 두 가지 방법으로 무료 SSL 인증서를 발급받는 것도 좋은 대안입니다.

이미 사이트에 SSL을 적용해 보셨나요? 경험담이 궁금합니다. 아래 댓글로 여러분의 이야기를 들려주세요.