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