#!/usr/bin/env bash # Generate TLS certificates for Mailu mail server # Uses the shared CA from the infrastructure set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CA_DIR="$SCRIPT_DIR/../ca" MAILU_DIR="$SCRIPT_DIR" echo "Generating TLS certificates for Mailu..." echo "Directory: $MAILU_DIR" echo "" # Check if CA exists if [ ! -f "$CA_DIR/ca-cert.pem" ] || [ ! -f "$CA_DIR/ca-key.pem" ]; then echo "ERROR: CA certificates not found. Please run generate-certificates.sh first." exit 1 fi # Clean up old certificates echo "Cleaning up old certificates..." rm -f "$MAILU_DIR/mailu-cert.pem" "$MAILU_DIR/mailu-key.pem" "$MAILU_DIR/mailu.csr" 2>/dev/null || true # ===================================== # Generate Mailu Server Certificates # ===================================== echo "Generating Mailu server certificates..." # Generate Mailu server private key openssl genrsa -out "$MAILU_DIR/mailu-key.pem" 4096 # Create certificate signing request (CSR) openssl req -new -key "$MAILU_DIR/mailu-key.pem" -out "$MAILU_DIR/mailu.csr" \ -subj "/C=US/ST=California/L=SanFrancisco/O=BakeryIA/OU=Mail/CN=mail.bakewise.ai" # Create SAN configuration for Mailu cat > "$MAILU_DIR/san.cnf" <