Domains können nun von der Zertifikatenerneuerung ausgeschlossen werden
This commit is contained in:
parent
6ebd344275
commit
9fef31b78e
12
README.md
12
README.md
@ -4,6 +4,14 @@
|
|||||||
|
|
||||||
Das Skript `cloudpanel-autorenew-letsencrypt-certs.v1.sh` automatisiert die Erneuerung und Installation von Let's Encrypt-Zertifikaten für alle Domains und Subdomains, die auf einem CloudPanel-Server konfiguriert sind. Es durchsucht die Nginx-Konfigurationsdateien im Verzeichnis `/etc/nginx/sites-enabled/` nach Domain-Namen, extrahiert diese und führt für jede gefundene Domain den Befehl `clpctl lets-encrypt:install:certificate` aus, um das entsprechende SSL-Zertifikat zu erneuern oder zu installieren. Das Skript protokolliert alle seine Aktivitäten in eine Log-Datei, die im Verzeichnis `/var/log/script-logs` gespeichert wird.
|
Das Skript `cloudpanel-autorenew-letsencrypt-certs.v1.sh` automatisiert die Erneuerung und Installation von Let's Encrypt-Zertifikaten für alle Domains und Subdomains, die auf einem CloudPanel-Server konfiguriert sind. Es durchsucht die Nginx-Konfigurationsdateien im Verzeichnis `/etc/nginx/sites-enabled/` nach Domain-Namen, extrahiert diese und führt für jede gefundene Domain den Befehl `clpctl lets-encrypt:install:certificate` aus, um das entsprechende SSL-Zertifikat zu erneuern oder zu installieren. Das Skript protokolliert alle seine Aktivitäten in eine Log-Datei, die im Verzeichnis `/var/log/script-logs` gespeichert wird.
|
||||||
|
|
||||||
|
Domains können jetzt ausgeschlossen werden.
|
||||||
|
|
||||||
|
Dazu einfach die Variable `exclude_domains` pflegen.
|
||||||
|
|
||||||
|
Domains werden mit Leerzeichen getrennt: `exclude_domains="example.com other.example.com"`
|
||||||
|
|
||||||
|
Wird diese Variable nicht gepflegt, werden alle Domains erneuert.
|
||||||
|
|
||||||
## Ausführung:
|
## Ausführung:
|
||||||
|
|
||||||
1. **Klonen des Repositorys**
|
1. **Klonen des Repositorys**
|
||||||
@ -26,6 +34,10 @@ Die Ausgabe sollte folgendermaßen aussehen:
|
|||||||
|
|
||||||
![autorenew](https://git.techniverse.net/scriptos/cloudpanel-autorenew-letsencrypt-certs/raw/branch/main/assets/autorenew1.png)
|
![autorenew](https://git.techniverse.net/scriptos/cloudpanel-autorenew-letsencrypt-certs/raw/branch/main/assets/autorenew1.png)
|
||||||
|
|
||||||
|
Wenn eine Domain übersprungen wird, sieht die Ausgabe folgendermaßen aus:
|
||||||
|
|
||||||
|
`Überspringe example.domain.com, da es ausgeschlossen ist.`
|
||||||
|
|
||||||
## Cronjob:
|
## Cronjob:
|
||||||
|
|
||||||
Der Cronjob kann wiefolgt konfiguriert werden.
|
Der Cronjob kann wiefolgt konfiguriert werden.
|
||||||
|
@ -5,22 +5,26 @@
|
|||||||
# Autor: Patrick Asmus
|
# Autor: Patrick Asmus
|
||||||
# Web: https://www.techniverse.net
|
# Web: https://www.techniverse.net
|
||||||
# Git-Reposit.: https://git.techniverse.net/scriptos/cloudpanel-autorenew-letsencrypt-certs.git
|
# Git-Reposit.: https://git.techniverse.net/scriptos/cloudpanel-autorenew-letsencrypt-certs.git
|
||||||
# Version: 1.2
|
# Version: 1.3
|
||||||
# Datum: 07.05.2024
|
# Datum: 20.05.2024
|
||||||
# Modifikation: Domain geändert, Doku erweitert und Email Settings angepasst
|
# Modifikation: Domains können nun von der Zertifikatenerneuerung ausgeschlossen werden
|
||||||
#####################################################
|
#####################################################
|
||||||
|
|
||||||
# Variablen
|
# Variables
|
||||||
hostname=$(hostname)
|
hostname=$(hostname)
|
||||||
config_path="/etc/nginx/sites-enabled/"
|
config_path="/etc/nginx/sites-enabled/"
|
||||||
log_dir="/var/log/script-logs"
|
log_dir="/var/log/script-logs"
|
||||||
log_file="$log_dir/cloudpanel-letsencrypt-renew.log"
|
log_file="$log_dir/cloudpanel-letsencrypt-renew.log"
|
||||||
|
|
||||||
|
# Email Settings
|
||||||
email_from="mail@domain.com"
|
email_from="mail@domain.com"
|
||||||
email_from_name="$hostname | CloudPanel Server"
|
email_from_name="$hostname | CloudPanel Server"
|
||||||
email_to="mail@domain.com"
|
email_to="mail@domain.com"
|
||||||
email_subject="Letsencrypt Zertifikate wurden auf $HOSTNAME erneuert"
|
email_subject="Letsencrypt Zertifikate wurden auf $HOSTNAME erneuert"
|
||||||
|
|
||||||
|
# Exclude Domains
|
||||||
|
exclude_domains="example.com other.example.com"
|
||||||
|
|
||||||
# Leite die Ausgaben in das Log-File um
|
# Leite die Ausgaben in das Log-File um
|
||||||
mkdir -p $log_dir
|
mkdir -p $log_dir
|
||||||
exec > >(tee -i "$log_file")
|
exec > >(tee -i "$log_file")
|
||||||
@ -29,8 +33,12 @@ exec 2>&1
|
|||||||
# Funktion zur Erneuerung/Erstellung von Zertifikaten
|
# Funktion zur Erneuerung/Erstellung von Zertifikaten
|
||||||
renew_certificate() {
|
renew_certificate() {
|
||||||
local domain=$1
|
local domain=$1
|
||||||
echo "Erneuere/Erstelle Zertifikat für: $domain"
|
if [[ ! $exclude_domains =~ (^|[[:space:]])$domain($|[[:space:]]) ]]; then
|
||||||
bash /usr/bin/clpctl lets-encrypt:install:certificate --domainName=$domain
|
echo "Erneuere/Erstelle Zertifikat für: $domain"
|
||||||
|
bash /usr/bin/clpctl lets-encrypt:install:certificate --domainName=$domain
|
||||||
|
else
|
||||||
|
echo "Überspringe $domain, da es ausgeschlossen ist."
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Extrahiere Domains aus den Konfigurationsdateien und führe Zertifikatserneuerung aus
|
# Extrahiere Domains aus den Konfigurationsdateien und führe Zertifikatserneuerung aus
|
||||||
|
Loading…
Reference in New Issue
Block a user