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