#!/bin/bash # ========================================================= # SSL Certificate Manager (Env-Strict & Safe) # ========================================================= CERT_DIR="certs" SELF_KEY="$CERT_DIR/selfsigned.key" SELF_CRT="$CERT_DIR/selfsigned.crt" REAL_KEY="$CERT_DIR/real.key" REAL_CRT="$CERT_DIR/real.crt" SAN_CONFIG="$CERT_DIR/san.cnf" mkdir -p "$CERT_DIR" # Load environment variables strictly if [ -f .env ]; then export $(grep -v '^#' .env | sed 's/#.*//' | grep -E '^[A-Z0-9_]+=.*' | xargs) else echo "❌ .env file not found. Exiting." exit 1 fi # Set safe defaults if any variables are missing C="${C:-US}" ST="${ST:-California}" L="${L:-San Francisco}" O="${O:-MyCompany}" OU="${OU:-IT}" CN="${CN:-localhost}" EMAIL="${EMAIL:-admin@localhost}" DNS="${DNS:-localhost}" IP="${IP:-127.0.0.1}" SSL_MODE="${SSL_MODE:-selfsigned}" generate_self_signed() { echo "πŸ” Generating self-signed certificate..." cat > "$SAN_CONFIG" <