versuch das mal! ich kann letsentcrypt einwandfrei nutzen mit b1gmailserver
https://community.letsencrypt.org/t/cert-validat…tificate/147914
Hat sich erledigt, ich bin einfach nur Dumm.
Ich hab vergessen dem Ordner + Files unter /opt/bqgmailserver/tls die "www-data" rechte zu geben.
Ich hab mir ma von ChatGPT nen Entsprechendes Script Schreiben lassen.
Falls jemand Interesse hat:
Bash
#!/bin/bash
# Variablen
DOMAIN="mailjunky.net" # Ersetze dies durch deinen Domainnamen
LE_PATH="/etc/letsencrypt/live/$DOMAIN"
B1GMAIL_CERT_PATH="/opt/b1gmailserver/tls"
LOG_DIR="/var/log/b1gmailserver"
LOG_FILE="$LOG_DIR/update_b1gmail_cert.log"
B1GMAIL_OWNER="www-data:www-data"
THRESHOLD_DAYS=14
# Erstelle das Log-Verzeichnis, falls es nicht existiert
mkdir -p "$LOG_DIR"
# Log-Funktion
log() {
echo "$(date '+%d.%m.%Y %H:%M') - $1" | tee -a "$LOG_FILE"
}
log "Starte Zertifikatserneuerung für b1gmail-Server"
# Pfade zu den Zertifikaten von Let's Encrypt
FULLCHAIN="$LE_PATH/fullchain.pem"
PRIVKEY="$LE_PATH/privkey.pem"
B1GMAIL_CERT="$B1GMAIL_CERT_PATH/server.cert"
# Überprüfen, ob die Zertifikate existieren
if [ ! -f "$FULLCHAIN" ] || [ ! -f "$PRIVKEY" ]; then
log "Zertifikate nicht gefunden. Überprüfen Sie den Pfad: $LE_PATH"
exit 1
fi
# Überprüfen, ob das bestehende b1gmail-Zertifikat aktualisiert werden muss
if [ -f "$B1GMAIL_CERT" ]; then
EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$B1GMAIL_CERT" | cut -d= -f2)
EXPIRY_DATE_EPOCH=$(date -d "$EXPIRY_DATE" +%s)
CURRENT_DATE_EPOCH=$(date +%s)
THRESHOLD_DATE_EPOCH=$(($CURRENT_DATE_EPOCH + $THRESHOLD_DAYS*24*60*60))
if [ $EXPIRY_DATE_EPOCH -gt $THRESHOLD_DATE_EPOCH ]; then
log "Das bestehende Zertifikat ist noch gültig bis $EXPIRY_DATE. Kein Austausch nötig."
exit 0
else
log "Das bestehende Zertifikat läuft bald ab (am $EXPIRY_DATE). Austausch nötig."
fi
else
log "Kein bestehendes Zertifikat gefunden. Austausch nötig."
fi
log "Zertifikate gefunden. Beginne mit dem Kopieren der Zertifikate"
# Erstelle den Zielordner, falls er nicht existiert
mkdir -p "$B1GMAIL_CERT_PATH"
# Kopiere die Zertifikate zum b1gmail-Server Zertifikatsordner
cp "$FULLCHAIN" "$B1GMAIL_CERT_PATH/server.cert"
log "Zertifikat $FULLCHAIN kopiert nach $B1GMAIL_CERT_PATH/server.cert"
cp "$PRIVKEY" "$B1GMAIL_CERT_PATH/server.key"
log "Schlüssel $PRIVKEY kopiert nach $B1GMAIL_CERT_PATH/server.key"
# Dateirechte setzen, um sicherzustellen, dass nur root darauf zugreifen kann
chmod 644 "$B1GMAIL_CERT_PATH/server.cert" # Server Cert Cert
chmod 600 "$B1GMAIL_CERT_PATH/server.key" # Server Key Key
log "Dateirechte gesetzt auf 600 für Cert Cert und Key Key"
# Eigentümer und Gruppe des Zielordners ändern
chown -R $B1GMAIL_OWNER "$B1GMAIL_CERT_PATH"
log "Eigentümer und Gruppe für $B1GMAIL_CERT_PATH gesetzt auf $B1GMAIL_OWNER"
# bms-queue Dienst neu starten
systemctl restart bms-queue
if [ $? -eq 0 ]; then
log "bms-queue Dienst erfolgreich neu gestartet"
else
log "Fehler beim Neustart des bms-queue Dienstes"
exit 1
fi
# Überprüfen, ob der bms-queue Dienst aktiv ist
systemctl is-active --quiet bms-queue
if [ $? -eq 0 ]; then
log "bms-queue Dienst läuft einwandfrei"
else
log "bms-queue Dienst ist nicht aktiv. Bitte überprüfen Sie den Dienst."
exit 1
fi
log "Zertifikate erfolgreich aktualisiert und Dienste neu gestartet."
log "Script beendet."
# Ende des Skripts
Alles anzeigen