new file: certbot/scripts/checkRenewCerts.sh

modified:   certbot/scripts/init-certbot.sh add
	renamed:    certbot/scripts/renewAllCerts.sh -> certbot/scripts/renewValitovGazizCert.sh
	new file:   certbot/scripts/renewYalarbaCert.sh
valitovgaziz domen renew&init scripts added
checkRenewCerts for both domains
This commit is contained in:
2025-07-08 13:13:58 +05:00
parent c3ed11738b
commit 0da4ffcb7a
4 changed files with 88 additions and 7 deletions
+73
View File
@@ -0,0 +1,73 @@
#!/bin/bash
# Функция проверки локального сертификата
check_local_cert() {
local cert_file=$1
local days_to_check=$2
if [[ ! -f "$cert_file" ]]; then
echo "Ошибка: Файл сертификата '$cert_file' не найден."
return 1
fi
# Получаем дату истечения сертификата
expiry_date=$(openssl x509 -in "$cert_file" -noout -dates | grep "notAfter=" | cut -d= -f2)
if [[ -z "$expiry_date" ]]; then
echo "Ошибка: не удалось получить дату истечения сертификата."
return 1
fi
# Преобразуем дату истечения в UNIX-время
expiry_unix=$(date -d "$expiry_date" +%s)
# Текущая дата в UNIX-времени
current_unix=$(date +%s)
# Вычисляем разницу между текущей датой и датой истечения
days_left=$(( ($expiry_unix - $current_unix) / 86400 ))
if ((days_left <= 0)); then
echo "Сертификат '$cert_file' истек!"
return 0
elif ((days_left <= days_to_check)); then
echo "Предупреждение: Сертификат '$cert_file' истекает через $days_left дней."
return 0
else
echo "Сертификат '$cert_file' действителен ещё $days_left дней."
return 1
fi
}
# Проверка первого сертификата и запуск соответствующего сценария обновления
check_first_cert() {
local first_cert="/etc/letsencrypt/live/yalarba.ru/cert.pem"
local first_script="/opt/renewYalarbaCert.sh"
local warning_days=2
if check_local_cert "$first_cert" "$warning_days"; then
echo "Запускаю обновление первого сертификата..."
"$first_script"
fi
}
# Проверка второго сертификата и запуск соответствующего сценария обновления
check_second_cert() {
local second_cert="/etc/letsencrypt/live/valitovgaziz.ru/cert.pem"
local second_script="/opt/renewValitovGazizCert.sh"
local warning_days=2
if check_local_cert "$second_cert" "$warning_days"; then
echo "Запускаю обновление второго сертификата..."
"$second_script"
fi
}
# Основная функция для последовательной проверки обоих сертификатов
main() {
check_first_cert
check_second_cert
}
# Запуск основной функции
main
+8 -7
View File
@@ -2,16 +2,17 @@
# Проверяем наличие сертификатов # Проверяем наличие сертификатов
if [ ! -d "/etc/letsencrypt/live/${DOMAINS}" ]; then if [ ! -d "/etc/letsencrypt/live/${DOMAINS}" ]; then
echo "Получаем новые сертификаты..." echo "Получаем новые сертификаты yalarba ..."
certbot certonly --webroot \ certbot certonly --webroot \
--config /etc/letsencrypt/config/certbot.ini \ --config /etc/letsencrypt/config/certbot.ini \
-w /var/www/certbot \ -w /var/www/certbot \
-d ${DOMAINS} -d ${DOMAINS}
fi fi
# Бесконечный цикл для обновления сертификатов if [ ! -d "/etc/letsencrypt/live/${DOMAINS_valitovgaziz}" ]; then
while :; do echo "Получаем новые сертификаты valitovgaziz ..."
echo "Проверяем необходимость обновления..." certbot certonly --webroot \
certbot renew --config /etc/letsencrypt/config/certbot.ini \
sleep 12h -w /var/www/certbot \
done -d ${DOMAINS_valitovgaziz}
fi
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
echo "Получаем новые сертификаты..."
certbot certonly --webroot \
--config /etc/letsencrypt/config/certbot.ini \
-w /var/www/certbot \
-d ${DOMAINS}