Initial
This commit is contained in:
parent
2e1695eede
commit
07e629de5c
29
README.md
29
README.md
@ -1,3 +1,28 @@
|
||||
# cloudpanel-autorenew-letsencrypt-certs
|
||||
# Autorenew der Letsencrypt Zertifikate mit CloudPanel
|
||||
|
||||
Erneuert Lets Encrypt Zertifikate in CloudPanel über die Kommandozeile
|
||||
## Was macht dieses Script?
|
||||
|
||||
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.
|
||||
|
||||
## Ausführung:
|
||||
|
||||
1. Klonen des Repositorys
|
||||
`git clone https://git.media-techport.de/scriptos/cloudpanel-autorenew-letsencrypt-certs.git`
|
||||
|
||||
2. Ausführen des Scripts
|
||||
`bash cloudpanel-autorenew-letsencrypt-certs.v1.sh`
|
||||
|
||||
Die Ausgabe sollte folgendermaßen aussehen:
|
||||
|
||||
![autorenew](https://git.media-techport.de/scriptos/cloudpanel-autorenew-letsencrypt-certs/raw/branch/main/assets/autorenew.png)
|
||||
|
||||
## Cronjob:
|
||||
|
||||
Der Cronjob kann wiefolgt konfiguriert werden.
|
||||
Ich für meinen Teil lasse dieses Script einmal im Monat laufen.
|
||||
|
||||
1. Aufrufen des Crontabs
|
||||
`crontab -e`
|
||||
|
||||
2. Konfiguration Cronjob
|
||||
`@monthly bash /home/scripts/default/cloudpanel-autorenew-letsencrypt-certs.v1.sh >/dev/null 2>&1`
|
||||
|
BIN
assets/autorenew.png
Normal file
BIN
assets/autorenew.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 170 KiB |
39
cloudpanel-autorenew-letsencrypt-certs.v1.sh
Normal file
39
cloudpanel-autorenew-letsencrypt-certs.v1.sh
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# Script Name: cloudpanel-autorenew-letsencrypt-certs.v1.sh
|
||||
# Beschreibung: Erneuert automatisch Letsencrypt Zertifikate in Cloudpanel
|
||||
# Aufruf: bash ./cloudpanel-autorenew-letsencrypt-certs.v1.sh
|
||||
# Autor: Patrick Asmus
|
||||
# Web: https://www.media-techport.de
|
||||
# Git-Reposit.: https://git.media-techport.de/scriptos/cloudpanel-autorenew-letsencrypt-certs.git
|
||||
# Version: 1.0
|
||||
# Datum: 17.03.2024
|
||||
# Modifikation: Initial
|
||||
#####################################################
|
||||
|
||||
# Variablen
|
||||
config_path="/etc/nginx/sites-enabled/"
|
||||
log_dir="/var/log/script-logs"
|
||||
log_file="$log_dir/cloudpanel-letsencrypt-renew.log"
|
||||
|
||||
# Leite die Ausgaben in das Log-File um
|
||||
mkdir -p $log_dir
|
||||
exec > >(tee -i "$log_file")
|
||||
exec 2>&1
|
||||
|
||||
# Funktion zur Erneuerung/Erstellung von Zertifikaten
|
||||
renew_certificate() {
|
||||
local domain=$1
|
||||
echo "Erneuere/Erstelle Zertifikat für: $domain"
|
||||
bash /usr/bin/clpctl lets-encrypt:install:certificate --domainName=$domain
|
||||
}
|
||||
|
||||
# Extrahiere Domains aus den Konfigurationsdateien und führe Zertifikatserneuerung aus
|
||||
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
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user