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 여기를 참고하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,