Danke Till, habe ich mittlerweile herausgefunden./usr/local/ispconfig/server/lib/classes/cron.d/900-letsencrypt.inc.php
#!/bin/bash
#
# Dieses Script prüft ob das Zertifikat welches über den Symlink erreicht wird, neuer ist als 24h.
# Wenn das der Fall ist, werden Postfix und Dovecot neu gestartet, damit das neue Zertifikat verwendet wird.
#
# Programmname speichern
thisprog=$(basename $0)
# Pfad zum Logverzeichnis
logpath="/var/log"
# Name des Logfiles
logfile="check_newlecertificate.log"
# Prüfen ob das Logverzeichnis ein Verzeichnis ist
if [ ! -d "$logpath" ]
then
echo "Abbruch: $logpath ist kein Verzeichnis"
exit
fi
# Pfad zum Logfile vollständig zusammenbauen
logpathfile="$logpath/$logfile"
# Wenn das Logfile nicht existiert, dann versuchen zu erstellen
if [ ! -e "$logpathfile" ]
then
echo "Erstelle Logdatei in: $logpathfile"
if [ ! -r "$logpath" ]
then
echo "Abbruch: Kann im Verzeichnis $logpath nicht schreiben"
exit
fi
`touch $logpathfile`
fi
# Prüfen ob das Logfile schreibbar ist
if [ ! -w "$logpathfile" ]
then
echo "Abbruch: $logpathfile ist nicht beschreibbar"
exit
fi
# Schreibe Start des Scripts in das Logfile
echo "`date +%Y-%m-%d\ %H:%M:%S`: Starting $thisprog..." >> "$logpathfile"
# Prüfe ob Argumente übergeben wurden
if [ "$#" -eq 0 ]
then
echo "Abbruch: Parameter fehlt"
echo "Beispiel: ./$thisprog \"/var/www/example.com/ssl/cert1.crt /var/www/example.com/ssl/cert2.crt\""
echo "`date +%Y-%m-%d\ %H:%M:%S`: Aborting: Missing arguments... Example: ./$thisprog \"/var/www/example.com/ssl/cert1.crt\"" >> "$logpathfile"
echo "" >> "$logpathfile"
exit
fi
# Variable für den aktuellen Zeitstempel
# mit 0 vorbelegt um später prüfen zu können ob das Auslesen erfolgreich war
datenow=`date +%s`
# Schreibe Logeintrag mit Anzahl der Parameter
echo "`date +%Y-%m-%d\ %H:%M:%S`: Getting $# arguments..." >> "$logpathfile"
# Hilfsvariable zum Prüfen ob es neue Zertfikate gibt
needrestart=0
while [ "$#" -gt 0 ]
do
echo "`date +%Y-%m-%d\ %H:%M:%S`: Processing ${1}" >> "$logpathfile"
# datecert initial auf 0 setzen
datecert=0
# Prüfen ob Datei existiert
if [ -e "${1}" ]
then
# Zeitstempel holen
datecert=`stat "${1}" -L -c %Y`
else
echo "`date +%Y-%m-%d\ %H:%M:%S`: Error: File ${1} does not exists" >> "$logpathfile"
fi
# Referenzzeit setzen auf jetziger Zeitstempel - 24h01m
maxagetime=$(( $datenow - 86460 ))
# Prüfen ob ein Zertifikat neuer ist als 24h01m
if [ "$datecert" -gt "$maxagetime" ]
then
needrestart=1
echo "`date +%Y-%m-%d\ %H:%M:%S`: ${1} is NEW. " >> "$logpathfile"
fi
# Prüfen ob needrestart schon 1 ist. Dann können wir uns die restlichen Durchläufe sparen, denn der Mailserver muss so oder so neu gestartet werden
if [ "$needrestart" -eq 1 ]
then
echo "`date +%Y-%m-%d\ %H:%M:%S`: Other given parameters would not be checked. We MUST restart the mailserver because ${1} is new." >> "$logpathfile"
break
fi
# ersten Parameter entfernen und die Schleife erneut durchlaufen bis Anzahl Parameter = 0
shift
done
# Prüfen ob Neustart nötig ist
if [ "$needrestart" -eq 1 ]
then
echo "`date +%Y-%m-%d\ %H:%M:%S`: Restarting Postfix..." >> "$logpathfile"
`service postfix restart`
echo "`date +%Y-%m-%d\ %H:%M:%S`: Postfix restarted..." >> "$logpathfile"
echo "`date +%Y-%m-%d\ %H:%M:%S`: Restarting Dovecot..." >> "$logpathfile"
`service dovecot restart`
echo "`date +%Y-%m-%d\ %H:%M:%S`: Dovecot restarted..." >> "$logpathfile"
else
echo "`date +%Y-%m-%d\ %H:%M:%S`: Nothing changed..." >> "$logpathfile"
fi
# Schreibe Ende des Scripts in das Logfile
echo "`date +%Y-%m-%d\ %H:%M:%S`: $thisprog finished" >> "$logpathfile"
echo "" >> "$logpathfile"
#!/bin/bash
check_cert=/etc/letsencrypt/live/hostname.domain.tld/chain.pem
check_ver_file=./check_version
get_ver=`cat $check_ver_file`
check_ver=`ls -i $check_cert`
if [ "$check_ver" == "$get_ver" ]; then
else
echo $(date)" [ *** Update available *** ]"
echo $(date)" Restarting Services"
echo $(date)" Reloading Apache Config"
/etc/init.d/apache2 reload
echo $(date)" Restarting Dovecot"
/etc/init.d/dovecot restart
echo $(date)" Restarting Postfix"
/etc/init.d/postfix restart
echo $(date)" Restarting FTP Service"
/etc/init.d/pure-ftpd-mysql restart
echo $(date)" Updating Version File"
echo $check_ver > $check_ver_file
echo $(date)" [ *** Cert Update Done *** ]"
fi
#!/bin/bash
le_path=/etc/letsencrypt/live/`hostname -f`
le_chain=${le_path}/chain.pem
ver_file=./current_`hostname -f`_cert
if [ ! -e "$ver_file" ] ; then
touch "$ver_file"
fi
cur_ver=`cat $ver_file`
le_ver=`ls -i $le_chain`
if ! [ "$cur_ver" = "$le_ver" ]; then
echo $(date)" [ *** Update available *** ]"
echo $(date)" Restarting Services"
echo $(date)" Reloading Apache Config"
/etc/init.d/apache2 reload
echo $(date)" Restarting Dovecot"
/etc/init.d/dovecot restart
echo $(date)" Restarting Postfix"
/etc/init.d/postfix restart
echo $(date)" Restarting FTP Service"
rm /etc/ssl/private/pure-ftpd.pem
cat ${le_path}/privkey.pem ${le_path}/fullchain.pem > /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
/etc/init.d/pure-ftpd-mysql restart
echo $(date)" Updating Version File"
echo $le_ver > $ver_file
echo $(date)" [ *** Cert Update Done *** ]"
fi
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen