글 / Nginx 운영

인증서 갱신 후 Reload 자동화

인증서가 갱신되어도 Nginx가 이전 인증서를 계속 제공하는 문제를 훅으로 방지한다.

작성일 · 읽는 시간 1분 · Certbot 2 기준

갱신 후 미반영 문제

certbot이 인증서 파일을 새로 발급받아도, nginx는 이미 읽어 들인 이전 인증서를 계속 제공한다. nginx가 설정을 다시 읽어야 새 인증서가 제공된다.

Deploy 훅

갱신에 성공한 경우에만 내부의 스크립트가 실행되는 폴더가 있다. 이 폴더에 스크립트를 배치한다.

bash/etc/letsencrypt/renewal-hooks/deploy/nginx-reload.sh
#!/bin/bash
# 설정이 깨져 있으면 reload하지 않는다
if nginx -t >/dev/null 2>&1; then
    systemctl reload nginx
else
    exit 1
fi

인증서 갱신 성공 뒤 Deploy 훅이 nginx를 reload하는 흐름

bash
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/nginx-reload.sh

확인 방법

bash
sudo certbot renew --dry-run

--dry-run에서는 deploy 훅이 실행되지 않는다. 스크립트 자체는 별도로 한 번 실행하여 확인한다.