2024-12-12 01:30:28 +01:00

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!"