이전 글
저번에 certbot을 이용해 SSL 인증서를 무료로 받았으니 이번에는 자동 갱신을 해보려고 한다.
Let's Encrypt의 SSL 인증서는 90일짜리 인증서이다. 그래서 90일이 지나기 전에 적어도 한 번은 인증서를 갱신해 주어야 한다.
직접 갱신하기
갱신을 하기 전 갱신 과정에서 오류가 발생 하는지 아래 명령으로 테스트를 할 수 있다.
$ certbot renew --dry-run
테스트를 했고 문제가 없다면 갱신을 해보자. 갱신은 위 명령에서 --dry와 --run 옵션을 빼면 된다.
$ certbot renew
이후 인증서의 정보를 확인해 갱신을 확인한다.
$ certbot certificates
매번 이렇게 갱신하는 것은 매우 귀찮고 까먹게 되면 인증서를 다시 발급받아야 된다.
이런 수고를 덜기 위해 crontab을 이용할 거다. crontab은 정의한 특정 시간에 특정 작업을 수행하게 해줌며 윈도우의 스케줄러랑 비슷하다고 보면 된다. crontab은 기본적으로 Ubuntu에 설치되어 있다.
자동 갱신하기
아래는 crontab의 자주 사용되는 명령어 이다.
$ crontap -e # crontab 편집
$ crontap -l # crontab 보기
$ crontap -r # crontab 삭제
$ view /var/log/syslog # crontab 실행 로그
우리는 /etc/letsencrypt에 접근이 필요하므로 crontap설정 시 sudo를 붙여야 된다.
$ sudo crontab -e
위 명령을 입력하면 crontab을 수정할 수 있는 편집기가 나온다. 시간을 설정해 주기적으로 원하는 명령을 실행하게 하는 형식은 아래와 같다.
* * * * * ls -al
' * * * * * '이곳은 주기 설정 영역이고 'ls -al' 부분은 예시이며 명령이 들어갈 자리이다.
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
주기는 위와 같이 설정하면 되고 만약 설정이 다 끝났다면 'esc'를 누른 후 ':wq'를 입력해 저장 후 빠져나오면 된다.
이제 진짜로 인증서를 갱신해보자.
15 3 * * * certbot renew --quiet --renew-hook "/etc/init.d/nginx reload"
--renew-hook 부분은 인증서의 자동 갱신이 되면 nginx를 재시작하기 위해 넣어주었다.
[SSL] Nginx에 SSL 인증서 적용 (Let's Encrypt)
'Backend > 보안' 카테고리의 다른 글
[보안] Bycrypt (0) | 2022.07.19 |
---|---|
[SSL] Nginx에 SSL 인증서 적용 (Let's Encrypt) (0) | 2022.07.08 |
[SSL] Certbot으로 SSL 무료 인증서 발급 (0) | 2022.07.08 |