Compare commits
2 Commits
9fef31b78e
...
4891da72b0
Author | SHA1 | Date | |
---|---|---|---|
4891da72b0 | |||
|
29a11ba524 |
@ -5,9 +5,9 @@
|
||||
# Autor: Patrick Asmus
|
||||
# Web: https://www.techniverse.net
|
||||
# Git-Reposit.: https://git.techniverse.net/scriptos/cloudpanel-autorenew-letsencrypt-certs.git
|
||||
# Version: 1.3
|
||||
# Datum: 20.05.2024
|
||||
# Modifikation: Domains können nun von der Zertifikatenerneuerung ausgeschlossen werden
|
||||
# Version: 1.4
|
||||
# Datum: 02.07.2024
|
||||
# Modifikation: Überprüfung der Zertifikate hinzugefügt
|
||||
#####################################################
|
||||
|
||||
# Variables
|
||||
@ -20,9 +20,10 @@ log_file="$log_dir/cloudpanel-letsencrypt-renew.log"
|
||||
email_from="mail@domain.com"
|
||||
email_from_name="$hostname | CloudPanel Server"
|
||||
email_to="mail@domain.com"
|
||||
email_subject="Letsencrypt Zertifikate wurden auf $HOSTNAME erneuert"
|
||||
email_subject="Letsencrypt Zertifikate wurden auf $hostname erneuert"
|
||||
|
||||
# Exclude Domains
|
||||
days_until_expiry=14
|
||||
exclude_domains="example.com other.example.com"
|
||||
|
||||
# Leite die Ausgaben in das Log-File um
|
||||
@ -41,15 +42,31 @@ renew_certificate() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Extrahiere Domains aus den Konfigurationsdateien und führe Zertifikatserneuerung aus
|
||||
# Funktion zur Überprüfung des Ablaufdatums eines Zertifikats
|
||||
check_certificate_expiry() {
|
||||
local domain=$1
|
||||
local expiry_date=$(openssl s_client -connect $domain:443 -servername $domain < /dev/null 2>/dev/null | openssl x509 -noout -dates | grep 'notAfter=' | cut -d= -f2)
|
||||
local expiry_timestamp=$(date -d "$expiry_date" +%s)
|
||||
local current_timestamp=$(date +%s)
|
||||
local days_left=$(( (expiry_timestamp - current_timestamp) / 86400 ))
|
||||
|
||||
if [[ $days_left -lt $days_until_expiry ]]; then
|
||||
echo "Das Zertifikat für $domain läuft in weniger als $days_until_expiry Tagen ab (in $days_left Tagen)."
|
||||
renew_certificate $domain
|
||||
else
|
||||
echo "Das Zertifikat für $domain ist noch $days_left Tage gültig. Keine Erneuerung erforderlich."
|
||||
fi
|
||||
}
|
||||
|
||||
# Extrahiere Domains aus den Konfigurationsdateien und überprüfe Zertifikatsgültigkeit
|
||||
for file in $config_path*; do
|
||||
domains=$(grep "server_name" $file | awk '{print $2}' | tr -d ';' | sed 's/^www\.//' | tr -d '\r')
|
||||
for domain in $domains; do
|
||||
if [ "$domain" != "_" ]; then
|
||||
renew_certificate $domain
|
||||
check_certificate_expiry $domain
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Senden einer E-Mail mit dem Logfile als Anhang
|
||||
echo "Die Letsencrypt Zertifikate wurden auf $HOSTNAME erneuert. Bitte überprüfe das angehängte Log für Details." | mail -a "$log_file" -s "$email_subject" -r "\"$email_from_name\" <$email_from>" "$email_to"
|
||||
echo "Die Letsencrypt Zertifikate wurden auf $HOSTNAME überprüft und ggf. erneuert. Bitte überprüfe das angehängte Log für Details." | mail -a "$log_file" -s "$email_subject" -r "\"$email_from_name\" <$email_from>" "$email_to"
|
||||
|
Loading…
Reference in New Issue
Block a user