Let’s Encrypt renewal Hooks
크론잡을 이용하여 아래 명령어를 입력하면 Let’s Encrypt SSL 보안 인증이 자동으로 갱신됩니다.
하지만 보통 80 포트를 사용하고 있기에 apache 서버 80포트를 사용하고 있다면 중지를 먼저 해야합니다.
스크립트를 이용하여 미리 아파치를 종료하고 켜고 반복할수 있겠지만…
만료일이 도달하지 않을 경우 필요 이상으로 httpd 를 재실행 할 수 있습니다.
crontab -e
12 1,12 * * * root certbot renew --no-self-upgrade
이를 방지 하기 위해서 Let’s Encrypt 3개월 무료 갱신 후크를 이용한 apache 중지, 실행, 재실행을 할 수 있습니다.
스크립트 안에는 딱히 명령어가 많지는 않고 https 를 start, stop 명령만 넣었습니다.
후킹에는 총 3개의 폴더로 구성되어 있습니다.
deploy 배포후에 동작하는 shell script (재시작을 보통 넣지만 저는 start 를 입력했습니다)
systemctl start httpd.service
post 인증명령어 동장 후 무조건 진행하는 shell script
systemctl start httpd.service
pre 인증 전 미리 동작하는 shell script
systemctl stop httpd.service
하나하나 직접 만들어도 되지만 Let’s Encrypt 폴더가 /etc/letsencrypt 로 시작한다면 아래 명령어로 일괄 다운받아 설치 할 수 있습니다. 제가 서버 추가할때마다 아래 명령어를 그대로 복사해서 붙여넣고 있습니다.
# 만약 다른 스크립트가 있다면 아래 명령어를 절대 실행해선 안됩니다. 모두 삭제됩니다.
cd /etc/letsencrypt
rm -rf /etc/letsencrypt/renewal-hooks/
wget https://vlog.tion.co.kr/app/renewal-hooks.tar
tar xvf renewal-hooks.tar
rm -rf renewal-hooks.tar
ll
cd /etc/letsencrypt/renewal-hooks/
du -ha
파일이 정상적으로 다운받고 압축이 잘 풀렸는지 확인까지 한눈에 파악되니 쉽게 자동 인증서 갱신이 될듯합니다.
목차