|
|
@@ -23,12 +23,34 @@ source $VESTA/conf/vesta.conf
|
|
|
#----------------------------------------------------------#
|
|
|
|
|
|
lecounter=0
|
|
|
+hostname=$(hostname)
|
|
|
+
|
|
|
+echo "[$(date)] : -----------------------------------------------------------------------------------" >> /usr/local/vesta/log/letsencrypt_cron.log
|
|
|
|
|
|
# Checking user certificates
|
|
|
for user in $($BIN/v-list-users plain |cut -f 1); do
|
|
|
USER_DATA=$VESTA/data/users/$user
|
|
|
|
|
|
for domain in $(search_objects 'web' 'LETSENCRYPT' 'yes' 'DOMAIN'); do
|
|
|
+
|
|
|
+ limit_check=1
|
|
|
+ fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
|
|
|
+
|
|
|
+ if [[ "$hostname" = "$domain" ]]; then
|
|
|
+ if [[ "$fail_counter" -eq 7 ]]; then
|
|
|
+ limit_check=0
|
|
|
+ fi
|
|
|
+ if [[ "$fail_counter" -eq 8 ]]; then
|
|
|
+ fail_counter=$(alter_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
|
|
|
+ send_email_to_admin "LetsEncrypt renewing hostname $hostname" "Warning: hostname $domain failed for LetsEncrypt renewing"
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$fail_counter" -ge 7 ]] && [[ "$limit_check" -eq 1 ]]; then
|
|
|
+ # echo "$domain failed $fail_counter times for LetsEncrypt renewing, skipping"
|
|
|
+ echo "[$(date)] : $domain failed $fail_counter times for LetsEncrypt renewing, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log
|
|
|
+ continue;
|
|
|
+ fi
|
|
|
crt_data=$(openssl x509 -text -in $USER_DATA/ssl/$domain.crt)
|
|
|
not_after=$(echo "$crt_data" |grep "Not After" |cut -f 2,3,4 -d :)
|
|
|
expiration=$(date -d "$not_after" +%s)
|
|
|
@@ -37,7 +59,7 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
|
|
|
days_valid=$((seconds_valid / 86400))
|
|
|
if [[ "$days_valid" -lt 31 ]]; then
|
|
|
if [ $lecounter -gt 0 ]; then
|
|
|
- sleep 10
|
|
|
+ sleep 120
|
|
|
fi
|
|
|
((lecounter++))
|
|
|
aliases=$(echo "$crt_data" |grep DNS:)
|
|
|
@@ -47,7 +69,15 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
|
|
|
aliases=$(echo "$aliases" |sed -e ':a;N;$!ba;s/\n/,/g')
|
|
|
msg=$($BIN/v-add-letsencrypt-domain $user $domain $aliases)
|
|
|
if [ $? -ne 0 ]; then
|
|
|
- echo "$domain $msg"
|
|
|
+ if [[ $msg == *"is suspended" ]]; then
|
|
|
+ echo "[$(date)] : SUSPENDED: $domain $msg" >> /usr/local/vesta/log/letsencrypt_cron.log
|
|
|
+ else
|
|
|
+ echo "[$(date)] : $domain $msg" >> /usr/local/vesta/log/letsencrypt_cron.log
|
|
|
+ echo "$domain $msg"
|
|
|
+ fail_counter=$(alter_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
|
|
|
+ echo "[$(date)] : fail_counter = $fail_counter" >> /usr/local/vesta/log/letsencrypt_cron.log
|
|
|
+ echo "fail_counter = $fail_counter"
|
|
|
+ fi
|
|
|
fi
|
|
|
fi
|
|
|
done
|