45 lines
1.5 KiB
Bash
45 lines
1.5 KiB
Bash
#!/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!" |