Apache2용 certbot 설정 확인 및 자동갱신

모든 도메인 설정이 완료된 것을 축하드립니다! 인증서 자동 갱신이 앞으로 문제없이 돌아가도록 확인하는 방법과, 갱신 성공 시 Apache가 새 인증서를 즉시 적용하게 만드는 deploy-hook 설정법을 정리해 드릴게요.


1. 자동 갱신 설정 확인 (Timer 확인)

Certbot은 systemd 타이머를 통해 하루에 두 번씩 만료 여부를 체크합니다. 이 타이머가 활성화되어 있는지 확인하는 명령어입니다.

Bash

# 타이머 목록에서 certbot 찾기
sudo systemctl list-timers | grep certbot

확인 포인트: NEXT 항목에 다음 실행 시간이 표시되고, ACTIVATING 상태라면 정상입니다.


2. 자동 갱신 시뮬레이션 (Dry Run)

실제로 인증서가 만료되었을 때 갱신 과정(DNS 체크, 파일 생성 등)이 오류 없이 진행되는지 테스트하는 가장 중요한 명령어입니다.

Bash

sudo certbot renew --dry-run

성공 메시지: Congratulations, all simulated renewals succeeded 문구가 나오면 완벽합니다.


3. Apache2 자동 재시작(Reload) 설정

인증서 파일이 새로 생성되어도 Apache가 그 파일을 다시 읽지 않으면 웹사이트에는 여전히 만료된 옛날 인증서가 뜨게 됩니다. 이를 방지하기 위해 갱신 성공 시에만 Apache를 재시작하도록 설정해야 합니다.

방법 A: 명령어로 한 번에 설정 (추천)

아래 명령어를 한 번 실행해두면, Certbot의 개별 도메인 설정 파일(renewal/*.conf)에 자동으로 기록되어 다음 갱신부터 적용됩니다.

Bash

sudo certbot renew --dry-run --post-hook "systemctl reload apache2"

방법 B: 설정 파일 직접 확인

각 도메인별로 post-hook이 잘 들어갔는지 확인해보고 싶다면 아래 경로의 파일을 열어보세요.

  • 경로: /etc/letsencrypt/renewal/도메인명.conf
  • 확인할 내용: 파일 하단 [renewalparams] 섹션에 아래 줄이 있는지 확인합니다.Ini, TOMLrenew_hook = systemctl reload apache2

💡 요약: 왜 restart가 아니라 reload인가요?

  • restart: 프로세스를 완전히 껐다 켭니다. 아주 잠시 서비스가 끊길 수 있습니다.
  • reload: 프로세스는 유지한 채 설정 파일(인증서 포함)만 새로 읽어옵니다. 서비스 중단이 전혀 없습니다.

이제 모든 설정이 끝났습니다. 90일마다 돌아오는 인증서 갱신 주기에 맞춰 서버가 알아서 인증서를 바꾸고, Apache에게 “새 인증서로 갈아 끼워!”라고 신호를 보낼 것입니다. 개발 업무에만 집중하셔도 되겠네요!

댓글 남기기