| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #!/bin/bash
- # info: update letsencrypt ssl certificates
- # options: NONE
- #
- # The function for renew letsencrypt expired ssl certificate for all users
- #----------------------------------------------------------#
- # Variable&Function #
- #----------------------------------------------------------#
- # Importing system enviroment as we run this script
- # mostly by cron wich not read it by itself
- source /etc/profile
- # Includes
- source $VESTA/func/main.sh
- source $VESTA/conf/vesta.conf
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- # Defining user list
- users=$($BIN/v-list-users | tail -n+3 | awk '{ print $1 }')
- # Checking users
- for user in $users; do
- USER_DATA=$VESTA/data/users/$user
- # Checking user certificates
- lecounter=0
- for domain in $(search_objects 'web' 'LETSENCRYPT' 'yes' 'DOMAIN'); do
- # Working on Web domain check - if is suspended
- webSuspended=$(grep "DOMAIN='$domain'" $USER_DATA/web.conf |grep "SUSPENDED='no")
- if [ ! -z "$webSuspended" ]; then
- continue;
- fi;
- crt="$VESTA/data/users/$user/ssl/$domain.crt"
- crt_data=$(openssl x509 -text -in "$crt")
- expire=$(echo "$crt_data" |grep "Not After")
- expire=$(echo "$expire" |cut -f 2,3,4 -d :)
- expire=$(date -d "$expire" +%s)
- now=$(date +%s)
- expire=$((expire - now))
- expire=$((expire / 86400))
- domain=$(basename $crt |sed -e "s/.crt$//")
- if [[ "$expire" -lt 31 ]]; then
- aliases=$(echo "$crt_data" |grep DNS:)
- aliases=$(echo "$aliases" |sed -e "s/DNS://g" -e "s/,//")
- aliases=$(echo "$aliases" |tr ' ' '\n' |sed "/^$/d")
- aliases=$(echo "$aliases" |grep -v "^$domain$")
- if [ ! -z "$aliases" ]; then
- 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"
- fi
- else
- msg==$($BIN/v-add-letsencrypt-domain $user $domain)
- if [ $? -ne 0 ]; then
- echo "$domain $msg"
- fi
- fi
- if [ $lecounter -gt 0 ]; then
- sleep 10
- fi
- ((lecounter++))
- fi
- done
- done
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- # No Logging
- #log_event "$OK" "$EVENT"
- exit
|