# 갱신 명령

certbot renew명령을 입력하면 certbot은 등록된 모든 갱신을 시도한다.

--post-hook옵션을 활용해 재발급이 완료된 이후 추가로 작업할 명령을 등록할 수 있다. 다음 명령 같은 경우에는 재발급 완료 이후 nginx설정을 다시 불러온다. 인증서가 갱신되었으니 nginx를 새로고침하는 하는 것과 같다.:

1
certbot renew --post-hook "service nginx reload"

# 갱신 명령 테스트

--dry-run 옵션을 통해 커맨드가 올바른지 테스트할 수 있다.:

1
certbot renew --post-hook "service nginx reload" --dry-run

# 추가 플러그인

nginx를 통해 자동 갱신을 위해서 다음 플러그인이 필요 할 수 있다. --dry-run 구동시 오류에서 nginx플러그인을 요구하면 해당 패키지를 설치하여야한다. debian9에서 해당 플러그인을 설치하기 위해서 패키지 주소를 추가해야한다.

apt 저장소를 추가하고 업데이트를 하면 python 관련 패키지의 업데이트를 요구할 수도 있다.:

1
2
3
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt install python-certbot-nginx

# cron 등록

cron을 통해 자동 갱신 작업을 등록한다. crontab -e를 입력하면 작업을 등록할 수 있다. certbot renew 명령은 일반 계정으로도 실행이 가능하지만 내부적으로 root 권한을 요구하도록 되어있다. su를 입력하여 root 계정으로 전환한 후 cron 작업을 등록해야한다.

다음 같은 경우는 3개월 마다 새벽 4시에 인증서를 갱신하고 nginx설정을 다시 불러온다. 여기서 3개월마다는 1월 ~ 12월을 모두 포함하므로 3,6,9,12월이 된다.

명령을 실행한 시점부터 3개월을 돌리고 싶다면 그냥 모두 지정해주는게 편하다. 예를들면 0 4 * 5,8,11,2 *처럼 등록하면 된다.:

1
0 4 * 1/3 * certbot renew --post-hook "service nginx reload"

# 와일드 카드 도메인 갱신 자동화

와일드 카드에 대한 갱신은 아직(2019-04-29 01:25:18) 지원하지 않는 듯.

하지만 DNS TXT레코드를 변경할 수 있는 쉘을 작성하면 --manual-auth-hook 옵션을 활용해 자동화할 수 있지만 기본적으로는 수동으로 작동하게 설계된듯 하다. Renew wildcard certificate[1]


  1. 글을 보면 알겠지만 누가 cloudflare DNS에 대한 작업을 한 흔적이 있다. DNS 관련 플러그인을 잘 찾아보면 다른 것도 있을 것 같다.