워드프레스 블로그 만들기 5: SSL 인증서 발급 https 설정

지난 글에서 라이트세일에 우리의 도메인을 연결했다.

이제 우리 블로그는 도메인 주소로 접속할 수 있지만, 브라우저에서 접속해보면 “안전하지 않은 사이트”라고 경고가 뜬다. 주소창 앞에 자물쇠 아이콘도 없다. 왜냐하면 http:// 로 시작하기 때문이다. 워드프레스에 SSL 인증서가 적용되지 않았기 때문이다.

HTTP란?

HyperText Transfer Protocol의 약자로 웹에서 클라이언트(예: 웹 브라우저)와 서버 간의 데이터를 주고받기 위한 통신 프로토콜이다.

HTTPS란?

데이터를 SSL/TLS로 암호화하여 안전하게 전송하는 프로토콜이다. 끝에 보안(Secure)이 추가된 것이다.

https
HTTPS

보안을 위해서는 SSL 인증서가 필요하다.

SSL 인증서는 인증서는 웹사이트의 신원을 증명하고 웹사이트와 방문자 사이의 통신을 암호화하는 디지털 인증서이다.

이번 포스팅에서는 사이트의 보안을 강화하고, 방문자에게 신뢰를 주기 위해 워드프레스에 SSL 인증서를 발급받고 주소를 https로 설정하는 방법을 알아보자.

워드프레스 SSL 인증서 발급 및 적용하기


우리는 라이트세일을 통해 워드프레스를 설치했고, 라이트세일을 통해 워드프레스를 설치할 때는 Bitnami라는 패키지를 손쉽게 설치하도록 도와주는 스택을 알아서 사용한다.

Bitnami 스택을 사용하면 손쉽게 SSL 인증서 발급 및 자동 갱신까지 간단하게 처리할 수 있다. 어떤 사용자는 그냥 이대로 따라할 수도 있지만, 이 방법이 가장 좋은가? 의문을 가질 수도 있기 때문에 몇 가지 설명을 해보겠다.

  1. 현재 포스팅의 방법대로 Bitnami의 자동 도구를 이용하는 방법
  2. 직접 SSL 인증서를 발급 받고, 시간이 되면 갱신을 하게 하는 설정 하는 방법
  3. 로드 밸런서를 이용하여 SSL 인증서를 적용하는 방법

2번의 경우 직접 Let’s Encrypt의 SSL 인증서를 발급 받아서 적용해야 하는 번거로움이 있고 그냥 발급만 받는 것 뿐만 아니라 90일마다 갱신을 해줘야 한다. 별도의 유료 서비스를 이용하면 갱신기간이 훨씬 길지만 단점은 유료다.

3번의 경우에도 유료다. SSL 인증서는 무료지만 로드 밸런서가 아주 비싼 유료다 현재 기준 월 18달러가 기본적으로 들어간다.

결론적으로 Bitnami를 통한 자동 설치 및 갱신 등록이 가장 쉽고 편리하다.

1번은 Let’s Encrypt의 인증서를 발급 받는 절차를 간단하게하고, 자동으로 갱신을 등록해주는 방식이다.

(Let’s Encrypt는 무료로 SSL/TLS 인증서를 발급해주는 비영리 인증 기관이다.)

1. SSH로 라이트세일 인스턴스에 접속

라이트세일 인스턴스

라이트세일의 인스턴스 탭에서 기존에 만들었던 인스턴스에 들어오면 SSH를 사용하여 연결이라는 버튼이 있다.

이 버튼을 통해 인스턴스로 들어가자. 그러면 까만 화면이 나올 것이다.

2. bncert-tool 실행

ShellScript
sudo /opt/bitnami/bncert-tool

위 명령어를 통해 bncert-tool을 실행하자.

이 도구는 SSL 인증서를 발급받고, 갱신하는 과정을 간단하게 처리하게 해준다.

3. 도메인 입력하기

SSL 도메인
도메인 입력하기

워드프레스 SSL 인증서를 적용할 도메인을 입력해야한다. 한 마디로 앞에 HTTPS가 붙을 주소를 입력하면 되는데 앞서서 A레코드에 등록한 도메인과 CNAME에 등록한 도메인 모두 등록하면 된다.

예시: wordpressblog.com www.wordpressblog.com

띄어쓰기로 구분해서 넣으면 되고, 여러개를 넣을 수 있다.

4. 리다이렉션 방향 설정하기

도메인 리다이렉션
리다이렉션 방향 설정

첫 번째 질문은 HTTP로 접속 했을 때 HTTPS로 방문자를 보낼 것이냐는 것이다. 당연히 Y

두 번째 질문은 wordpressblog.com 주소로 들어온 방문자를 www.wordpressblog.com로 보낼 것이냐는 건데, 이거는 설정하기 나름인데, 내 워드프레스 블로그 주소를 www가 붙은걸 메인으로 할거냐, 붙지않은 걸 메인으로 할거냐의 차이다.

  • wordpressblog.com 가 좋다면 N
  • www.wordpressblog.com이 좋다면 Y

다음 세 번째 질문에는 두번째 질문에 N을 했기 때문에 Y를 해주면 된다.

안해도 상관없는데, 그러면 wordpressblog.com와 www.wordpressblog.com는 별개의 사이트로 취급된다. 물론 DNS에 해놔서 이동이 되긴할텐데 검색엔진은 별개로 파악해서 SEO에 좋지않다거나 그런게 있다고하 DNS를 등록할 때의 방향대로 해주는게 좋다.

SSL 설정 확인
설정 확인

현재까지 설정한게 맞는지 확인하는 작업이다. Y를 입력하고 넘어가자.

5. 이메일 주소 입력

SSL 이메일 입력
이메일 주소 입력

워드프레스 SSL 인증서 발급 관련 알림을 받을 이메일 주소를 입력하자.

Let’s Encrypt에서 인증서 만료 알림이나 문제 발생시 메일을 보내므로 실제 사용하는 이메일을 입력하는 게 좋다.

6. 완료 확인

완료

워드프레스 SSL 인증서를 발급받아서 적용하고, 자동 갱신등록하고 확인하고 끝이 난다.

이제 등록되어 있던 도메인으로 접속하면 자동으로 https://로 리다이렉션되고, 브라우저 주소창에 자물쇠 아이콘이 표시될 것이다.

자동 갱신은 어떻게 되나?

참고로 자동갱신은 crontab이라는 리눅스 우분투 기반 시스템에서 작업을 정기적으로 예약하고 자동으로 실행할 수 있도록 도와주는 일정관리도구가 해주는 건데 bncert-tool이 알아서 crontab을 이용하여 다 설정 해놓았을 것이다.

자동갱신이 잘 등록되었는지 확인하고 싶다면 아래 명령어를 입력해서 확인해보자.

ShellScript
crontab -l

crontab -l 명령어를 입력했을 때, 아래와 같이 나오면 잘 등록이 된 것이다.

ShellScript
16 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="이메일주소@gmail.com" --http --http-timeout 30 --http.webroot /opt/bitnami/apps/letsencrypt --domains=도메인주소.com --user-agent bitnami-bncert/2.0.1 renew && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful # bncert-autorenew

워드프레스 https 설정을 마치며


워드프레스 SSL인증서 적용을 통해 https 프로토콜을 사용할 수 있게 되었다.

하지만 아직 끝난게 아닌데, 마지막으로 워드프레스의 설정에서도 콘텐츠, 리소스들이 https:// 를 갖도록 변경을 해주어야 한다. 접속 자체는 아무 문제가 없지만 내부 링크의 http 주소로 인한 Mixed Content 오류를 일으키거나 SEO에서 불리할 수 있기 때문이다.

하지만 현재 포스팅하고 있는 워드프레스 블로그 만들기 시리즈에서는 아직 워드프레스에 접속을 하지 않았다.

만약 워드프레스에 접속을 할 줄 안다면 설정을 바로 변경하면 되고, 아니라면 다음 포스팅을 따라가며 순서에 따라 변경하도록 하자.