由於 Let’s Encryp 的憑證時效只有 90 天,自動更新有時候並非那麼理想,故想到先查憑證剩餘到期時間,低於某個時間後再進行更新
到期時間計算參考以下網址
https://askubuntu.com/questions/1198619/bash-script-to-calculate-remaining-days-to-expire-ssl-certs-in-a-website
取得憑證剩下天數後,再去判斷是否低於需要更新的時間
以下是程式碼
#!/bin/bash PATH=$PATH:/usr/sbin:/usr/local/bin website=$1 certificate_file=$(mktemp) echo -n | openssl s_client -servername "$website" -connect "$website":443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $certificate_file date=$(openssl x509 -in $certificate_file -enddate -noout | sed "s/.*=\(.*\)/\1/") date_s=$(date -d "${date}" +%s) now_s=$(date -d now +%s) date_diff=$(( (date_s - now_s) / 86400 )) echo "$website will expire in $date_diff days" expire_day=`expr $date_diff` echo $expire_day if [ $expire_day -lt 28 ] then echo $expire_day certbot renew else echo "Dont need RENEW" fi
留言
張貼留言