#!/bin/bash

# Liste de tous les domaines pour lesquels générer des certificats
domains=(
  "www.octave.immo.docker"
)

echo "Génération des certificats SSL pour tous les domaines..."

for site in "${domains[@]}"
do
  echo "Génération du certificat pour $site"

  # Génération de la clé privée
  openssl genrsa -out $site.key 2048

  # Création du fichier de configuration pour le certificat
  cat > $site.ext <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage              = digitalSignature, keyEncipherment
subjectAltName        = @alt_names
[alt_names]
DNS.1 = $site
EOF

  # Si le domaine commence par www., ajoutons également une entrée sans www.
  if [[ $site == www.* ]]; then
    non_www_domain=${site#www.}
    echo "DNS.2 = $non_www_domain" >> $site.ext
  else
    # Sinon, ajoutons une entrée avec www.
    echo "DNS.2 = www.$site" >> $site.ext
  fi

  # Génération de la demande de certificat
  openssl req -new -key $site.key \
         -out $site.csr \
         -subj "/C=FR/O=MozartDev/CN=$site"

  # Signature du certificat avec l'autorité de certification locale
  openssl x509 -req -in $site.csr \
         -CA mozart-dev-ca.crt -CAkey mozart-dev-ca.key -CAcreateserial \
         -out $site.crt -days 36500 -sha256 -extfile $site.ext

  echo "Certificat généré pour $site"
  echo "----------------------------"
done

echo "Génération des certificats terminée."
