mirror of
https://github.com/myvesta/vesta.git
synced 2025-01-10 21:12:52 -08:00
e757da763f
Related to issue https://github.com/serghey-rodin/vesta/issues/1193
73 lines
2.4 KiB
Bash
Executable File
73 lines
2.4 KiB
Bash
Executable File
#!/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
|
|
for domain in $(search_objects 'web' 'LETSENCRYPT' 'yes' 'DOMAIN'); do
|
|
|
|
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
|
|
sleep 10
|
|
fi
|
|
done
|
|
done
|
|
|
|
#----------------------------------------------------------#
|
|
# Vesta #
|
|
#----------------------------------------------------------#
|
|
|
|
# No Logging
|
|
#log_event "$OK" "$EVENT"
|
|
|
|
exit
|