diff --git a/start.letsencrypt.sh b/start.letsencrypt.sh index 36d0f65..2b66499 100755 --- a/start.letsencrypt.sh +++ b/start.letsencrypt.sh @@ -22,41 +22,38 @@ start_letsencrypt() { fi } +check_new_cert() { + + #DATE=$(date +%s) + if [[ -f /acme.sh/$DOMAIN/key.pem && -f /acme.sh/$DOMAIN/fullchain.pem && -f /acme.sh/$DOMAIN/cert.pem ]] ; then + #D1=$(date -r /acme.sh/$DOMAIN/fullchain.pem +%s) + #DIFF=$(expr $DATE - $D1); + #if [ $DIFF < 3600 ]; then touch /acme.sh/$DOMAIN/new_certificate; fi + NEW=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -fingerprint -noout) + if [ "$ORIGINAL" != "$NEW" ]; then + touch /acme.sh/$DOMAIN/new_certificate; + fi + else + sending_error_msg $DOMAIN $DATE; + fi +} + LETSENCRYPT_FILE=$(find /acme.sh/ -type f -name letsencrypt); if [ -n "$LETSENCRYPT_FILE" ] ; then DOMAIN=$(jq -r .DOMAIN $LETSENCRYPT_FILE) ; - DATE=$(date +%y%m%d%H) - echo $DATE + ORIGINAL=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -fingerprint -noout) start_letsencrypt; rm $LETSENCRYPT_FILE; - - if [[ -f /acme.sh/$DOMAIN/key.pem && -f /acme.sh/$DOMAIN/fullchain.pem && -f /acme.sh/$DOMAIN/cert.pem ]] ; then - - if [[ "$(date -r /acme.sh/$DOMAIN/key.pem +%y%m%d%H)" -ge "$DATE" && "$(date -r /acme.sh/$DOMAIN/fullchain.pem +%y%m%d%H)" -ge "$DATE" && "$(date -r /acme.sh/$DOMAIN/cert.pem +%y%m%d%H)" -ge "$DATE" ]] ; then - touch /acme.sh/$DOMAIN/new_certificate; - else - sending_error_msg $DOMAIN $DATE; - fi - fi + check_new_cert else cd /domains for i in `ls` ; do DOMAIN=$(jq -r .DOMAIN $i) ; - DATE=$(date +%y%m%d%H) - echo $DATE + ORIGINAL=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -fingerprint -noout) start_letsencrypt $DOMAIN; - - if [[ -f /acme.sh/$DOMAIN/key.pem && -f /acme.sh/$DOMAIN/fullchain.pem && -f /acme.sh/$DOMAIN/cert.pem ]] ; then - - if [[ "$(date -r /acme.sh/$DOMAIN/key.pem +%y%m%d%H)" -ge "$DATE" && "$(date -r /acme.sh/$DOMAIN/fullchain.pem +%y%m%d%H)" -ge "$DATE" && "$(date -r /acme.sh/$DOMAIN/cert.pem +%y%m%d%H)" -ge "$DATE" ]] ; then - - touch /acme.sh/$DOMAIN/new_certificate; - else - sending_error_msg $DOMAIN $DATE; - fi - - fi + + check_new_cert done ; fi