Bash - Génération de certificat auto-signé
Auteur : Cbillet
Date de création : 10/11/2024
Version : 1.0
Contact : N/A
Index
Description
Ce script utilise OpenSSL pour générer un certificat auto-signé à partir d’un fichier CSR (Certificate Signing Request) et de sa clé privée associée. Il permet de personnaliser la durée de validité, le nom du fichier de sortie, et l’algorithme de hachage utilisé pour signer le certificat.
Pour télécharger le script, suivez ce lien : cert-autosign.sh
Utilisation
Syntaxe de la commande
./generate_self_signed.sh -c <fichier_csr> -k <fichier_cle> [-o <fichier_certificat>] [-d <jours>] [-H <algorithme_hachage>]
Options
-c, --csr <fichier_csr>
: Fichier CSR en entrée (obligatoire). Le CSR contient les informations d’identité pour le certificat.-k, --key <fichier_cle>
: Fichier de clé privée associé au CSR (obligatoire). Utilisé pour signer le certificat.-o, --output <fichier_certificat>
: Nom du fichier de certificat de sortie. Si non spécifié, le fichier de sortie est nommé automatiquement avec l’extension.crt
(par exemple,server.csr
devientserver.crt
).-d, --days <jours>
: Durée de validité du certificat en jours (par défaut : 365). Seules les valeurs entières positives sont acceptées.-H, --hash-alg <algorithme_hachage>
: Algorithme de hachage utilisé pour signer le certificat. Options valides :sha256
,sha384
,sha512
. Par défaut,sha256
est utilisé.-h, --help
: Affiche cette aide et les détails d’utilisation du script.
Exemples d’exécution
Générer un certificat auto-signé avec les options par défaut (valide pour 365 jours, utilisant SHA-256) :
./generate_self_signed.sh -c server.csr -k server.key
Générer un certificat auto-signé avec une durée de validité de 730 jours et SHA-512 comme algorithme de hachage :
./generate_self_signed.sh -c server.csr -k server.key -o my_cert.crt -d 730 -H sha512
Fonctionnement du script et Explications des Mécanismes OpenSSL
Le script utilise OpenSSL pour signer le certificat à partir d’un fichier CSR, avec les mécanismes et options suivants :
Fichier CSR (Certificate Signing Request) : - Le CSR est un fichier généré à partir d’une clé privée et contient des informations sur l’entité qui demande le certificat (par exemple, domaine, organisation, localisation). - Dans le script, le CSR est passé avec l’option
-c
ou--csr
et est une entrée obligatoire. Ce fichier est utilisé comme base pour le certificat auto-signé.Clé privée : - La clé privée associée au CSR est requise pour signer le certificat auto-signé. - Elle est fournie avec l’option
-k
ou--key
. - Lorsqu’OpenSSL reçoit la clé privée avec l’option-signkey
, il l’utilise pour signer numériquement le certificat final. Cela garantit que seul le propriétaire de la clé privée peut authentifier le certificat.Durée de validité du certificat : - OpenSSL utilise l’option
-days
pour définir la période de validité du certificat, à partir de la date de création. - Cette durée est spécifiée avec l’option-d
ou--days
dans le script. Si elle n’est pas précisée, la durée par défaut est de 365 jours.Algorithme de hachage : - Le script utilise un algorithme de hachage pour signer le certificat. Les options disponibles sont
sha256
,sha384
, etsha512
. - Lors de la signature du certificat, OpenSSL applique le hachage spécifié, garantissant ainsi l’intégrité et la sécurité du certificat. - Cette option est fournie via-H
ou--hash-alg
. Si elle n’est pas précisée, SHA-256 est utilisé par défaut.Génération du certificat avec OpenSSL : - La commande OpenSSL exécutée par le script est de la forme :
openssl x509 -req -in <fichier_csr> -signkey <fichier_cle> -out <output_file> -days <jours> -<algorithme_hachage>
Cette commande effectue les étapes suivantes : -
-req
: indique qu’un CSR est utilisé en entrée. --in <fichier_csr>
: spécifie le fichier CSR à utiliser. --signkey <fichier_cle>
: utilise la clé privée pour signer le certificat. --out <output_file>
: définit le fichier de sortie pour le certificat généré. --days <jours>
: définit la durée de validité du certificat. --<algorithme_hachage>
: applique l’algorithme de hachage spécifié (ex. :-sha256
).
Note : Les options de hachage influencent la sécurité et la compatibilité du certificat. SHA-256 est recommandé pour des standards de sécurité actuels, tandis que SHA-512 offre une sécurité encore plus élevée.
Message de confirmation : - Une fois la génération terminée, le script vérifie la création du fichier de certificat et affiche un message de succès. En cas d’échec, un message d’erreur est affiché pour aider au diagnostic.
Notes supplémentaires
Vérification des valeurs : La valeur de l’option
--days
doit être un entier positif. Si ce n’est pas le cas, le script arrête son exécution et affiche une erreur.Algorithmes de hachage : Seuls
sha256
,sha384
, etsha512
sont autorisés pour garantir la sécurité et la compatibilité avec les standards actuels.
Compatibilité
Le script est conçu pour être exécuté sur des distributions Linux disposant de la commande OpenSSL.