@@ -24,12 +24,24 @@ source $HESTIA/conf/hestia.conf
2424
2525# Set LE counter
2626lecounter=0
27+ max_LE_failures=30
2728
2829# Checking user certificates
2930for user in $( $HESTIA /bin/v-list-sys-users plain) ; do
3031 USER_DATA=$HESTIA /data/users/$user
3132
3233 for domain in $( search_objects ' web' ' LETSENCRYPT' ' yes' ' DOMAIN' ) ; do
34+
35+ domain_suspended=" $( get_object_value ' web' ' DOMAIN' " $domain " ' $SUSPENDED' ) "
36+ if [ " $domain_suspended " = " yes" ]; then
37+ continue
38+ fi
39+
40+ fail_counter=" $( get_object_value ' web' ' DOMAIN' " $domain " ' $LETSENCRYPT_FAIL_COUNT' ) "
41+ if [[ " $fail_counter " -gt " $max_LE_failures " ]]; then
42+ continue
43+ fi
44+
3345 crt_data=$( openssl x509 -text -in $USER_DATA /ssl/$domain .crt)
3446 not_after=$( echo " $crt_data " | grep " Not After" | cut -f 2,3,4 -d :)
3547 expiration=$( date -d " $not_after " +%s)
@@ -48,12 +60,28 @@ for user in $($HESTIA/bin/v-list-sys-users plain); do
4860 aliases=$( echo " $aliases " | sed -e ' :a;N;$!ba;s/\n/,/g' )
4961 msg=$( $BIN /v-add-letsencrypt-domain $user $domain $aliases )
5062 if [ $? -ne 0 ]; then
51- echo " $domain $msg "
63+ log_event $E_INVALID " $domain $msg "
64+ if [ -z " $fail_counter " ]; then
65+ add_object_key " web" ' DOMAIN' " $domain " ' LETSENCRYPT_FAIL_COUNT' ' LETSENCRYPT'
66+ fi
67+ (( fail_counter++ ))
68+ update_object_value ' web' ' DOMAIN' " $domain " ' $LETSENCRYPT_FAIL_COUNT' " $fail_counter "
5269 fi
5370 fi
5471 done
5572
5673 for domain in $( search_objects ' mail' ' LETSENCRYPT' ' yes' ' DOMAIN' ) ; do
74+
75+ domain_suspended=" $( get_object_value ' mail' ' DOMAIN' " $domain " ' $SUSPENDED' ) "
76+ if [ " $domain_suspended " = " yes" ]; then
77+ continue
78+ fi
79+
80+ fail_counter=" $( get_object_value ' mail' ' DOMAIN' " $domain " ' $LETSENCRYPT_FAIL_COUNT' ) "
81+ if [[ " $fail_counter " -gt " $max_LE_failures " ]]; then
82+ continue
83+ fi
84+
5785 crt_data=$( openssl x509 -text -in $USER_DATA /ssl/mail.$domain .crt)
5886 not_after=$( echo " $crt_data " | grep " Not After" | cut -f 2,3,4 -d :)
5987 expiration=$( date -d " $not_after " +%s)
@@ -67,7 +95,12 @@ for user in $($HESTIA/bin/v-list-sys-users plain); do
6795 (( lecounter++ ))
6896 msg=$( $BIN /v-add-letsencrypt-domain $user $domain ' ' yes)
6997 if [ $? -ne 0 ]; then
70- echo " $domain $msg "
98+ log_event $E_INVALID " $domain $msg "
99+ if [ -z " $fail_counter " ]; then
100+ add_object_key " mail" ' DOMAIN' " $domain " ' LETSENCRYPT_FAIL_COUNT' ' LETSENCRYPT'
101+ fi
102+ (( fail_counter++ ))
103+ update_object_value ' mail' ' DOMAIN' " $domain " ' $LETSENCRYPT_FAIL_COUNT' " $fail_counter "
71104 fi
72105 fi
73106 done
0 commit comments