#!/usr/bin/env bash set -euo pipefail # --------------------------------------------------------------------------- # generate-minio-tls.sh — One-time: generate CA + server cert for MinIO TLS # --------------------------------------------------------------------------- # Creates: # ConfigMap/minio-ca-cert — CA public cert (mounted everywhere) # Secret/minio-tls — server cert+key (mounted only by MinIO) # # SANs cover all K8s DNS forms for the minio Service in foxhunt namespace. # Run from any machine with openssl + kubectl access to the cluster. # --------------------------------------------------------------------------- NAMESPACE="${NAMESPACE:-foxhunt}" CA_DAYS=3650 # 10 years SERVER_DAYS=730 # 2 years WORK_DIR="$(mktemp -d)" trap 'rm -rf "$WORK_DIR"' EXIT echo "=== Generating MinIO TLS certs (workdir: $WORK_DIR) ===" # --- CA (self-signed, 10 years) ------------------------------------------- openssl genrsa -out "$WORK_DIR/ca.key" 4096 openssl req -new -x509 \ -key "$WORK_DIR/ca.key" \ -out "$WORK_DIR/ca.crt" \ -days "$CA_DAYS" \ -subj "/CN=foxhunt-minio-ca/O=foxhunt" # --- Server cert (signed by CA, 2 years) ---------------------------------- cat > "$WORK_DIR/server.cnf" <