NAS

자작 NAS - Let's Encrypt SSL 인증서 갱신(crontab 자동갱신)

coucou3 2020. 2. 21. 01:43
반응형

Let's Encrypt를 통해 발급받은 인증서는 90일 유효기간이 있다.

/etc/letsencrypt/list.sh를 통해 보유한 인증서 목록과 남은 사용기간을 알 수 있다.

$ sudo ./list.sh
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: <your-domain>
    Domains: <your-domain>
    Expiry Date: 2020-05-19 14:59:47+00:00 (VALID: 88 days)
    Certificate Path: <인증서 path>
    Private Key Path: <key path>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

지난 번 발급 받은 인증서는 88일(VALID: 88 days) 남았다.

 

 

 

 

 


 

 

 

 

 

인증서를 갱신하는 방법에는 두 가지 방법이 있다.

*인증서는 기간이 만료되어야만 갱신할 수 있다.

 

 

 

 1. 수동 갱신 

 

별 거없이 지난 번 설정 때 함께 만든 renew.sh를 실행해주면 된다.

다만, 인증서 유효기간이 남았을 경우 아래와 같은 메시지와 함께 갱신되지 않는다.

$ sudo ./renew.sh
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/<your-domain>.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/<your-domain>/fullchain.pem expires on 2020-0x-xx (skipped)
No renewals were attempted.
No hooks were run.

 

 

 

 

 

 2. 자동갱신 

 

Linux의 Crontab을 이용하여 주기적으로 renew-cron.sh를 실행하면 된다.

새로운 Cron job을 추가한다.

$ sudo crontab -e
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]:

 

crontab을 처음 실행했더니 편집에 사용할 에디터를 고르라고 나온다.

편한 에디터를 번호로 고른다 1~4

 

 

 

 

crontab에는 다음과 같이 내용을 적을 수 있다.

* * * * * <Command>

 

뒤에는 실행하길 원하는 명령어이고, 앞은 해당 명령을 실행하는 주기이다.

Cron job의 실행 주기는 https://crontab.guru/에서 좀 더 자세히 테스트해 볼 수 있다.

 

 

 

 

여기에서는 매일 00시에 인증서 갱신을 시도하도록 해보겠다.

crontab에 아래 내용을 추가하고 저장하면, 새로운 job이 Cron scheduler에 등록된다.

0 0 * * * /etc/letsencrypt/renew-cron.sh

 

매일 00시에 renew-cron.sh 파일을 실행하는 작업을 추가했다.

 

 

 

 

cron의 실행 관련 로그는 /var/log/syslog에 기록되며, 아래 명령어로 찾아볼 수 있다.

$ sudo cat /etc/log/syslog | grep cron
반응형

'NAS' 카테고리의 다른 글

자작 NAS - Plex 미디어 서버  (0) 2020.02.27
자작 NAS - ownCloud SSL 보안설정  (0) 2020.02.21
자작 NAS - ownCloud와 SMB/AFP 경로 맞추기  (0) 2020.02.10