Certbot 설치 및 사용법
Certbot 에서는 쉽고 빠르게 인증서 발급을 할 수 있도록 클라이언트를 제공하고 있습니다. 이 블로그도 Let's Encrypt의 Certbot으로 인증된 인증서를 사용하고 있습니다.
- 본 포스팅은 Ubuntu 17.04, Nginx 기준으로 작성되었습니다.
- 설치법은 Nginx On Ubuntu 17.04 Installation 를 참조하였습니다.
Certbot 사이트에 들어가면 다음과 같은 화면이 반겨줍니다.
중간 Select Box에서 Nginx 와 Ubuntu 17.04를 선택하시면 설치방법이 나옵니다. 꽤 다양한 환경을 지원하고 있습니다.
다음 Installation 화면에 나온 방법을 저만의 방법으로 쉽게 써보았습니다.
먼저, Certbot 을 설치합니다.
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot // certbot을 설치합니다.
인증서 생성 전, nginx를 종료합니다.
$ sudo service nginx stop // 443 포트가 사용중이면 오류가 발생하니 nginx를 종료합니다.
$ cd && mkdir certbot && cd ./certbot // 사용자 홈 디렉토리에 certbot 이라는 폴더를 생성합니다.
(필) -w 으로 webRoot를 지정합니다.
(필) -d 으로 인증서를 적용할 도메인(DNS) 를 지정합니다.
(선) --standalone 으로 standalone 모드를 설정 할 수 있습니다.
(선) --work-dir 으로 작업 디렉토리를 설정 할 수 있습니다.
(선) --logs-dir 으로 로그를 남길 디렉토리를 설정 할 수 있습니다.
(선) --config-dir 으로 설정파일을 남길 디렉토리를 지정 할 수 있습니다.
더 많은 명령어는 man certbot
을 참고하세요.
인증서를 설치합니다.
$ certbot certonly --standalone -w [webRoot] -d [DomainName] --work-dir [workDir] --logs-dir [logDir] --config-dir [confDir]
--work-dir, --logs-dir, --config-dir 을 생략하고 진행할 수 있으나, 권한 문제가 발생할 수 있습니다. 기본 디렉토리는 다음과 같습니다.
--config-dir : /etc/letsencrypt
--work-dir : /var/lib/letsencrypt
--logs-dir : /var/log/letsencrypt
Let's Encrypt 인증서는 만료일이 3개월이기 때문에 Crontab
을 이용하여 3개월 마다 인증서를 갱신합니다.
$ sudo crontab -e // root 계정의 crontab을 설정합니다.
crontab 최하단에 다음과 같이 추가합니다.
0 0 1 */3 * certbot renew --config-dir [confDir] --logs-dir [logDir] --work-dir [workDir]
0 0 1 */3 * service nginx reload
0 0 1 */3 *
의 뜻은 [3,6,9,12]월 1일의 0시 0분에 다음 명령어를 진행하라는 뜻입니다.
이렇게 설정된 인증서를 nginx에 적용하시면 인증서 설치가 완료됩니다. 모르는 부분은 댓글 주시면 빠르게 답변 드리겠습니다~