1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#!/bin/bash
# Generate encryption keys for Rspamd workers
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ENV_FILE="$SCRIPT_DIR/../.env.keys"
echo "=== Generating Rspamd encryption keys ==="
echo ""
# Generate keypair for fuzzy worker (encryption)
echo "1. Fuzzy worker keypair (encryption)..."
rspamadm keypair -u > "$SCRIPT_DIR/fuzzy-keypair.tmp"
FUZZY_PRIVKEY=$(grep "privkey" "$SCRIPT_DIR/fuzzy-keypair.tmp" | cut -d'"' -f2)
FUZZY_PUBKEY=$(grep "pubkey" "$SCRIPT_DIR/fuzzy-keypair.tmp" | cut -d'"' -f2)
rm -f "$SCRIPT_DIR/fuzzy-keypair.tmp"
# Generate keypair for normal worker
echo "2. Normal worker keypair..."
rspamadm keypair -u > "$SCRIPT_DIR/worker-keypair.tmp"
WORKER_PRIVKEY=$(grep "privkey" "$SCRIPT_DIR/worker-keypair.tmp" | cut -d'"' -f2)
WORKER_PUBKEY=$(grep "pubkey" "$SCRIPT_DIR/worker-keypair.tmp" | cut -d'"' -f2)
rm -f "$SCRIPT_DIR/worker-keypair.tmp"
# Generate keypair for proxy worker
echo "3. Proxy worker keypair..."
rspamadm keypair -u > "$SCRIPT_DIR/proxy-keypair.tmp"
PROXY_PRIVKEY=$(grep "privkey" "$SCRIPT_DIR/proxy-keypair.tmp" | cut -d'"' -f2)
PROXY_PUBKEY=$(grep "pubkey" "$SCRIPT_DIR/proxy-keypair.tmp" | cut -d'"' -f2)
rm -f "$SCRIPT_DIR/proxy-keypair.tmp"
echo ""
echo "Keys generated successfully!"
echo ""
# Create .env.keys file for docker-compose
cat > "$ENV_FILE" <<EOF
# Rspamd integration test keys
# Generated at $(date)
# Fuzzy worker keypair
RSPAMD_FUZZY_WORKER_PRIVKEY=$FUZZY_PRIVKEY
RSPAMD_FUZZY_WORKER_PUBKEY=$FUZZY_PUBKEY
# Fuzzy check encryption key (same as fuzzy worker pubkey)
RSPAMD_FUZZY_ENCRYPTION_KEY=$FUZZY_PUBKEY
# Normal worker keypair (for encrypted inter-worker communication)
RSPAMD_WORKER_PRIVKEY=$WORKER_PRIVKEY
RSPAMD_WORKER_PUBKEY=$WORKER_PUBKEY
# Proxy worker keypair
RSPAMD_PROXY_PRIVKEY=$PROXY_PRIVKEY
RSPAMD_PROXY_PUBKEY=$PROXY_PUBKEY
EOF
echo "Environment variables saved to $ENV_FILE"
echo ""
echo "Summary:"
echo " - Fuzzy worker: encrypted (pubkey used for client encryption)"
echo " - Normal worker: encrypted"
echo " - Proxy worker: encrypted"
echo ""
echo "Use these in configs with: {= env.VARIABLE_NAME =}"
echo "(without the RSPAMD_ prefix)"
|