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