Lets’ Encrypt certbot-auto 를 사용한 인증서 설치

Lets’ Encrypt certbot-auto 를 사용한 인증서 설치

certbot?

간단하게 정리하면 환경에 맞춰 Let’s Encrypt 인증서를 자동으로 발급/갱신해주는 봇입니다. Let’s Encrypt의 인증서 발급 방식을 간단하게 이야기하자면, 인증서 요청 -> 도메인에 대한 소유권 확인 챌린지 -> 발급과 같은 절차를 밟습니다. certbot은 이러한 부분의 처리를 자동으로 수행해줍니다.

Install

Shell

12345# wget https://dl.eff.org/certbot-auto
# chmod a+x certbot-auto
# ./certbot-auto

실행 권한을 추가한 스크립트를 실행하시면 필요한 의존성을 알아서 잘 설치해주게 됩니다.
필요한 의존성 설치를 위해 root 권한을 요구할 것입니다.

그리고 화면에 나온대로 선택해서 설정 해 주시면 되고
몇 가지 옵션을 보면

certonly : 인증서만을 얻어오겠음
–webroot : webroot 플러그인을 쓰겠음
-w /var/www/challenge : 챌린지 파일을 생성할 기준 폴더를 지정
-d some.site.com : 인증서를 생성할 도메인을 지정

Setup Certificate

발급된 인증서는 /etc/letsencrypt/live/sitename 폴더에 생성됩니다.
예제대로라면,

/etc/letsencrypt/live/some.site.com/fullchain.pem
/etc/letsencrypt/live/some.site.com/privkey.pem
처럼 인증서가 생성됩니다. 이를 서버 설정에 추가해주시면 됩니다.

ps: 다른 곳에서는 /etc/certbot/..에 생성되었다는 이야기도 있으니 참고하세요.

Renew certificate with cron

갱신은 그냥 이전과 동일한 방식으로 renew 명령을 실행해주면 됩니다. 잘 동작하는지 확인하시려면 –dry-run 옵션을 사용하세요.
그럼 이제 알아서 자동으로 갱신해줄 수 있도록 cronjob에 등록해봅시다.

Shell

123# ./certbot-auto renew –quiet –no-self-upgrade

등록해야하는 명령은 조금 다른 옵션을 가지고 있습니다. 본래 스크립트를 실행하면 자기 자신을 최신버전으로 업데이트하려고 시도하는데,
이 동작을 비활성화하기 위한 옵션과 로그를 무시하는 옵션을 넘겨주고 있습니다.

그럼 이제 crontab을 열고,

Shell

123456# vi /etc/crontab
# Begin Let’s encrypt renew
0 19 1 1/3 * /bin/bash -l -c ‘/usr/bin/certbot-auto renew –quiet –no-self-upgrade’
# End Let’s encrypt renew

여기에서는 3개월에 한 번, 새벽 4시에 갱신을 시도하게끔 설정해뒀습니다.

Let’s Encrypt SSL 인증서의 유효기간은 90일

90일이 지나면 인증서가 만료(Expired) 되고 웹 사이트에 접속 시에 에러 메시지가 뜰 수 있지요.

이 경우에 인증서 기간 연장방법을 사용해도 제대로 인증서 적용이 되지 않습니다.
이 때는 아래와 같이 certbot-auto 파일이 설치된 폴더에 가서 renew 명령어를 –quiet 과 사용합니다.

Shell

123]# ./certbot-auto renew –quiet

정상적으로 Let’s Encrypt 인증서가 설치됩니다. 마지막으로, 아파치 서버를 리스타트 시켜줍니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다