crontab을 이용해서 Let’s Encrypt SSL 인증서 자동갱신

crontab을 이용해서 Let’s Encrypt SSL 인증서 자동갱신

DevOps
crontab을 이용해서 Let’s Encrypt SSL 인증서 자동갱신
Author

gabriel yang

Published

December 5, 2023

crontab을 이용해서 Let’s Encrypt SSL 인증서 자동갱신

crontab은 Unix 및 Unix 계열 운영 체제에서 주기적으로 실행되는 작업을 예약하는 데 사용되는 시스템 유틸리티입니다. crontab은 “크론 테이블”의 줄임말로, 사용자가 일정한 간격으로 명령을 실행하도록 예약할 수 있게 해줍니다. 이는 주기적으로 반복되는 작업을 자동화하는 데 유용합니다.

crontab 새로운 명령어 만들기

-e옵션으로 텍스트 폅집기로 명령을 수정하거나 추가할 수 있습니다.

crontab -e

예제로 crontabb에 certbot을 이용하여 인증서를 갱신하는 명령을 추가합니다. crontab의 format은 아래와 같습니다.

0   1    *   *     1       sudo certbot renew --nginx
|   |    |   |     |       |
min hour day month weekday 명령어
                  (0은 일요일)

crontab guru를 이용하면 시간 format의 주기를 확인할 수 있습니다. 위의 시간은 At 01:00 on Monday을 의미합니다.

crontab 명령어 확인하기

-l옵션으로 텍스트 폅집기로 명령을 확인할 수 있습니다.

crontab -l
0 1 * * 1 sudo certbot renew --nginx

crontab 시작/중지/재시작

크론탭의 명령어를 추가하거나 변경했다면 crontab을 재시작해야 합니다. 아래 명령을 이용해서 cron 데몬의 상태 시작/중지/재시작 및 상태를 확인할 수 있습니다.

service cron start
service cron stop
service cron restart
service cron status

인증서 갱신 테스트

--dry-run옵션을 사용하면 실제 갱신 명령을 수행전에 오류를 확인할 수 있습니다. 갱신은 갱신종료일 20일 전에 가능합니다.

sudo certbot renew --dry-run

인증서 갱신 날짜 확인하기

갱신 명령을 수행하면 갱신 종료일이 얼마나 남았는 지 확인할 수 있습니다. 갱신종료까지 62일 남은 것을 알 수 있습니다.

certbot certificates
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: ...
    Expiry Date: 2024-02-05 17:01:07+00:00 (VALID: 62 days)

갱신을 위한 명령을 추가합니다.

0 1 * * 1 sudo certbot renew --nginx > ~/crontab-result.log

매주 월요일 1시에 renew 명령을 수행합니다. 실행 결과는 crontab-result.log에서 확인할 수 있습니다.

References

  1. https://devlog.jwgo.kr/2019/04/16/how-to-lets-encrypt-ssl-renew/
Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Mar 20, 2025 우분투(Ubuntu)에서 ngrok 설치 및 사용 방법 gabriel yang
Feb 4, 2025 Windows 11에서 WSL 설치 및 Docker 연결하기 gabriel yang
Oct 7, 2024 Docker Compose로 Jenkins 설치 및 사용하기 gabriel yang
Aug 23, 2024 우분투(Ubuntu)에서 특정 폴더를 아파치 서버로 설정하기 gabriel yang
Jul 24, 2024 GitHub Actions 시작하기 gabriel yang
Dec 31, 2023 우분투와 윈도우 파일 공유하기 (samba) gabriel yang
Nov 27, 2023 우분투 docker, docker-compse 설치 gabriel yang
Nov 26, 2023 AWS 호스팅 EC2 와 Lightsail의 차이 gabriel yang
Nov 20, 2023 wsl 이미지 저장 위치 변경 및 백업 gabriel yang
Nov 20, 2023 airflow postgresoperator 사용하기 gabriel yang
Nov 18, 2023 docker-compose로 airflow 설치하기 gabriel yang
Nov 15, 2023 wsl2에 docker 설치하기 gabriel yang
Nov 15, 2023 mkfifo를 이용한 IPC gabriel yang
Oct 9, 2023 Github Pull Request 템플릿 적용하기 gabriel yang
No matching items
Back to BLOG LIST