up
This commit is contained in:
commit
f8a7022f21
34
readme
Normal file
34
readme
Normal file
@ -0,0 +1,34 @@
|
||||
# Aktualisiierung von SSL-Zertifikaten für Mailcow
|
||||
|
||||
Dieses Skript aktualisiert SSL-Zertifikate für einen Mailcow-Server.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Kopieren Sie das Skript in ein Verzeichnis Ihrer Wahl.
|
||||
2. Passen Sie die folgenden Variablen an:
|
||||
- `MAILCOW_SERVER`: Server und Benutzername (z.B. root@localhost)
|
||||
- `TARGET_DIR`: Zielpfad auf dem Server (z.B. /mailcow-dockerized/data/assets/ssl)
|
||||
- `SOURCE_CERT`: Pfad zum Original-Zertifikat (z.B. /etc/haproxy/ssl/example_domain.pem)
|
||||
- `SSH_PASSWORD`: SSH-Passwort des Servers
|
||||
|
||||
## Nutzung
|
||||
|
||||
Führen Sie das Skript aus:
|
||||
|
||||
|
||||
Das Skript wird folgende Schritte durchführen:
|
||||
- Extrahieren der privaten Schlüssel und Zertifikate
|
||||
- Generierung einer Diffie-Hellman-Datei
|
||||
- Übertragung der Zertifikate auf den Server
|
||||
- Neustart von Mailcow
|
||||
|
||||
## Wichtige Hinweise
|
||||
|
||||
- Getestet in Alpine in kombination mit HA-Proxy
|
||||
- Stellen Sie sicher, dass OpenSSL und OpenSSH installiert sind so wie sshpass.
|
||||
- Testen Sie das Skript zuerst in einer Entwicklungsumgebung.
|
||||
- Achten Sie auf die Sicherheit bei der Speicherung von Passwörtern.
|
||||
|
||||
## Lizenz
|
||||
|
||||
Dieses Skript wird unter der MIT-Lizenz veröffentlicht.
|
45
updater.sh
Normal file
45
updater.sh
Normal file
@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
|
||||
# SCP-Ziel: Mailcow-Server und Zielpfad
|
||||
MAILCOW_SERVER="root@localhost"
|
||||
TARGET_DIR="mailcow-dockerized/data/assets/ssl" # Vollständiger Pfad
|
||||
|
||||
# Pfad zum Originalzertifikat
|
||||
SOURCE_CERT="/etc/haproxy/ssl/example_domain.pem"
|
||||
|
||||
# SSH-Passwort (ersetze dies durch das tatsächliche Passwort)
|
||||
SSH_PASSWORD=""
|
||||
|
||||
# Temporäre Verzeichnisse für die generierten Dateien
|
||||
TEMP_DIR="/tmp/certgen"
|
||||
mkdir -p $TEMP_DIR
|
||||
|
||||
# Die private Schlüsseldatei und das öffentliche Zertifikat erstellen
|
||||
echo "Extrahiere privaten Schlüssel und Zertifikat..."
|
||||
|
||||
# Zertifikat extrahieren (privaten Schlüssel)
|
||||
openssl pkey -in $SOURCE_CERT -out $TEMP_DIR/key.pem
|
||||
|
||||
# Zertifikat extrahieren (öffentliches Zertifikat)
|
||||
openssl x509 -in $SOURCE_CERT -out $TEMP_DIR/cert.pem
|
||||
|
||||
# Diffie-Hellman-Datei erstellen, falls sie nicht existiert
|
||||
if [ ! -f $TEMP_DIR/dhparams.pem ]; then
|
||||
echo "Generiere dhparams.pem"
|
||||
openssl dhparam -out $TEMP_DIR/dhparams.pem 2048
|
||||
fi
|
||||
|
||||
# Zertifikate und Schlüssel per SCP auf den Server übertragen
|
||||
echo "Übertrage Zertifikate auf den Server..."
|
||||
sshpass -p "$SSH_PASSWORD" scp $TEMP_DIR/cert.pem $MAILCOW_SERVER:$TARGET_DIR/cert.pem
|
||||
sshpass -p "$SSH_PASSWORD" scp $TEMP_DIR/key.pem $MAILCOW_SERVER:$TARGET_DIR/key.pem
|
||||
sshpass -p "$SSH_PASSWORD" scp $TEMP_DIR/dhparams.pem $MAILCOW_SERVER:$TARGET_DIR/dhparams.pem
|
||||
|
||||
# Mailcow neu starten, damit die Änderungen übernommen werden
|
||||
echo "Starte Mailcow neu..."
|
||||
sshpass -p "$SSH_PASSWORD" ssh $MAILCOW_SERVER "cd mailcow-dockerized && docker-compose restart"
|
||||
|
||||
# Bereinigen der temporären Dateien
|
||||
rm -rf $TEMP_DIR
|
||||
|
||||
echo "Fertig!"
|
Loading…
x
Reference in New Issue
Block a user