리눅스(linux)에서 letsencrypt 설치 및 설정방법(워드프레스 무료 ssl 인증서적용)

티스토리 블로그도 아주 훌륭한 블로그운영 사이트이긴 하지만, 커스터마이징이 힘들고, 자료백업이 안되는 부분때문에 워드프레스 블로그로 이전하시는 분들이 많이 계십니다.


워드프레스 블로그를 운영하시려면, 별도의 웹호스팅 비용 및 도메인 구입 비용이 지불된다는점 참고하시고, 이전하시기 바랍니다.


그와 관련해서 워드프레스를 운영하게 되면 좋은점 중에 하나가 바로 구입한 도메인에 무료로 ssl 인증서를 적용할 수 있습니다. 단순히 http://test.com 으로 접속하는게 아닌, https://test.com 으로 접속함으로써, 구글이 좋아하는 신뢰할 수 있는 사이트로 제작할 수 있습니다.



물론 ssl 인증서 구입비용은 무료 입니다. 직접 서버(리눅스 서버)에 설치 적용한 상태라면 코모도라던지 별도의 ssl인증서 판매업체에서 인증서를 구매하지 않아도 됩니다. 다만, 3개월마다 갱신해줘야 되는데, 이방법은 크론등록을 통해서 자동으로 갱신하도록 설정할 수 있습니다.


설명에 앞서 아래 적용된 os 운영체제의 정보는 이렇습니다.


os : centos6.8(64bit)

apache : 2.4.23(letsencrypt 설치하려면 2.4.x 버전 이상이어야 됩니다.)


이곳에서는 APM(apache, php, mysql) 설치에 관한 정보 및 워드프레스 설치, 사용법에 대한 설명은 배제하겠습니다. 단순 워드프레스 무료 ssl 인증서적용에 필요한 letsencrypt 설치에 관한 정보 입니다.


1) 아래부분은 repository 등록하는 방법도 함께 설명을 했습니다. 만약 epel-release설치가 안된다면 아래 링크에서 다운로드 받으셔서 설치 해야 됩니다.



http://dl.fedoraproject.org/pub/epel/6/x86_64/


yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm


cd /usr/local

yum -y install epel-release

rpm -ivh https://rhel6.iuscommunity.org/ius-release.rpm

yum -y install git python27 python27-devel python27-pip python27-setuptools python27-virtualenv python27-libs


2) git clone https://github.com/certbot/certbot



3) chattr -i /usr/bin/gcc /usr/bin/g++ 

cd /usr/local/src/certbot

/usr/local/src/certbot/certbot-auto certonly

chmod 700 /usr/bin/gcc /usr/bin/g++;chattr +i /usr/bin/gcc /usr/bin/g++



certbot 설치된 디렉토리를 정확히 확인한 후에 certbot-auto certonly 실행하는것이 좋습니다. 위에 나와 있는 명령어를 그대로 실행하는것보다는 자신의 시스템 환경에 맞춰서 진행하시기 바랍니다.



4) 혹시나 위의 명령어로 certbot-auto 가 정상적으로 실행이 되지 않으실 경우 아래 그림을 참고하여 다시 입력해 보시기 바랍니다.


/usr/local/src/certbot/certbot-auto certonly --no-bootstrap



5) ##certbot 디렉토리 찾는법

find / -name certbot

##


6) [ssl 도메인 추가 방법]

./certbot-auto certonly --server https://acme-v01.api.letsencrypt.org/directory \

                   --rsa-key-size 4096 --agree-tos --email enteroa.j@gmail.com \

                   --webroot -w /home/test/www/ \

                   -d test.com


여기서 -w 자신의 홈디렉토리,  -d는 도메인을 뜻합니다.


7) 3개월마다 자동 갱신 크론탭에 등록하는 방법


vi /root/letsencrypt.sh


#!/bin/bash

# 실행 조건 1일 1회 작동

## pid 생성 중복실행을 방지 #######################################################

if [[ -s $0.pid ]];then exist_pid=$(cat $0.pid)

  if [[ -z $(ps -e|grep "^$exist_pid ") ]];then rm -f $0.pid;exec_confirm="Y"

  else exec_confirm="N";echo -e "\e[1;32mShell has already running...\e[0m";fi

else exec_confirm="Y";fi

if [[ $exec_confirm == "Y" ]];then

  echo $$ > $0.pid

###################################################################################

  cd /usr/local/certbot

  chattr -i /usr/bin/gcc /usr/bin/g++

  /usr/local/certbot/certbot-auto renew --quiet

  chmod 700 /usr/bin/gcc /usr/bin/g++;chattr +i /usr/bin/gcc /usr/bin/g++

  find /tmp -maxdepth 1 -type d -perm 700 -user root -name 'tmp.*' -exec rm -rf {} \;

###################################################################################

  rm -f $0.pid

fi

###################################################################################


혹시나 위 스크립트가 정상작동 하지 않는다고 한다면, /usr/local/certbot/certbot-auto renew --quiet 으로 강제적으로 실행해도 됩니다. 사용자 스스로가 만료일이 다가온다면, 수동으로 갱신해줘도 문제는 없습니다.


사실 워드프레스에 대해서 간단히 설명하고, 리눅스서버에서 APM설치 및 워드프레스 설치 운영방법에 대해서 설명한 후에 현재 포스팅을 하려고 했는데, 아직 자료 준비가 되어 있지 않아 순서가 조금 뒤바뀐점이 있습니다.


그래도 혹시나 리눅스서버(레드햇 기반)에서의 무료 ssl 인증서를 사용하고 싶으신분들은 이 방법을 참고하시면 좋을거 같습니다.