Creare uno script Bash interattivo per generare certificati SSL self-signed

I certificati SSL self-signed sono utili per testare le connessioni HTTPS o per uso interno in ambienti di sviluppo. In questo articolo, vedremo come creare uno script Bash interattivo per generare certificati SSL self-signed utilizzando OpenSSL, uno strumento ampiamente utilizzato per la crittografia e la gestione dei certificati.

Creeremo uno script Bash chiamato generate_ssl.sh che chiederà all'utente di fornire i dettagli del certificato, come il nome del dominio, la durata del certificato e il percorso di output. Lo script creerà quindi una chiave privata e un certificato self-signed utilizzando OpenSSL.


#!/bin/bash

echo "Benvenuto nel generatore di certificati SSL self-signed."
read -p "Inserisci il nome di dominio (esempio: esempio.com): " domain
read -p "Inserisci il numero di giorni di validità del certificato: " days
read -p "Inserisci il percorso di output (directory in cui salvare il certificato e la chiave): " output_dir

# Controlla se la directory di output esiste, altrimenti creala
if [ ! -d "$output_dir" ]; then
    mkdir -p "$output_dir"
fi

# Nomi dei file per la chiave e il certificato
key_file="$output_dir/$domain.key"
cert_file="$output_dir/$domain.crt"

# Genera una chiave privata
openssl genpkey -algorithm RSA -out "$key_file" -aes256
if [ $? -ne 0 ]; then
    echo "Errore nella generazione della chiave privata."
    exit 1
fi

# Genera il certificato self-signed
openssl req -new -x509 -key "$key_file" -out "$cert_file" -days "$days" -subj "/CN=$domain"
if [ $? -ne 0 ]; then
    echo "Errore nella generazione del certificato SSL."
    exit 1
fi

echo "Certificato SSL generato con successo!"
echo "Chiave privata: $key_file"
echo "Certificato: $cert_file"

Lo script può essere ulteriormente migliorato per includere funzionalità aggiuntive, come:

  • Verifica della presenza di OpenSSL: prima di eseguire i comandi, lo script può verificare se OpenSSL è installato.
  • Gestione degli errori migliorata: fornire messaggi di errore più dettagliati se qualcosa va storto.
  • Supporto per configurazioni avanzate: ad esempio, generare un file di configurazione personalizzato per OpenSSL con più opzioni per il certificato.

Conclusione

Creare un certificato SSL self-signed con uno script Bash interattivo è un ottimo modo per automatizzare l'impostazione dei certificati per ambienti di sviluppo e test. Sebbene questi certificati non siano adatti per l'uso in produzione, sono utili per scopi di test o per l'uso interno.

Questo script è un buon punto di partenza e può essere personalizzato in base alle esigenze specifiche, come l'inclusione di ulteriori opzioni di configurazione o l'integrazione con altri strumenti di automazione.

Torna su