LETSENCRYPT SSL 인증서 자동갱신 쉘스크립트
Let's encrypt 무료 SSL 인증서는 유효기간이 90일입니다.
거의 3달 만에 한번씩 갱신을 해주어야 하는 불편함이 있지요~
아래 처럼 스크립트로 만들어서 크론으로 자동갱신하면 편리합니다.
#!/bin/sh
TODAY=`date +%Y%m%d%H`
LOG_FILE="/root/letsencrypt.txt"
KEY_PATH="/etc/letsencrypt/live"
KEY_FILE="cert.pem"
EMAIL="email@example.com"
DOMAINS="
www.example.com
"
if [ -e "/usr/bin/letsencrypt" ] ; then
LETSENCRYPT="/usr/bin/letsencrypt"
else
LETSENCRYPT="/root/letsencrypt/letsencrypt-auto"
fi
for DOMAIN in $DOMAINS ; do
CERT_PATH="$KEY_PATH/$DOMAIN/$KEY_FILE"
if [ -e "$CERT_PATH" ] ; then
C_DATE=`openssl x509 -in $CERT_PATH -text -noout | grep After | awk -F ' : ' '{print $2}'`
R_DATE=`date +%Y%m%d%H --date="$C_DATE -1 days"`
if [ "$TODAY" -ge "$R_DATE" ] ; then
echo "# $DOMAIN renew date : "`date` >> $LOG_FILE
/root/bin/web-service.sh stop
$LETSENCRYPT renew >> $LOG_FILE
/root/bin/web-service.sh start
fi
else
echo "# $DOMAIN create date : "`date` >> $LOG_FILE
/root/bin/web-service.sh stop
$LETSENCRYPT certonly --standalone --agree-tos -m $EMAIL -d $DOMAIN
/root/bin/web-service.sh start
fi
done
web-service.sh 스크립트는 자신의 환경에 맞게 직접 만드셔야 합니다.
아파치랑 nginx 를 같이 사용한다면 둘다 서비스를 종료했다가 다시 재시작 해주는 스크립트를 만들면 됩니다.
https://ivps.tistory.com/630 여기를 참고하면 됩니다.
'LINUX' 카테고리의 다른 글
[리눅스] 유저 홈페이지 Data 및 MySQL DB 백업 (0) | 2018.11.30 |
---|---|
CentOS 웹서비스 start stop 쉘스크립트 (0) | 2018.11.30 |
저사양 VPS 스왑메모리 생성 스크립트 (0) | 2018.11.26 |
[CentOS] 초기 설치 상태로 초기화 방법 (0) | 2018.11.15 |
[MySQL] DB hotcopy 백업 쉘스크립트 (0) | 2018.11.08 |