Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| ejbca_createca [2024/03/20 14:12] – nekan | ejbca_createca [2024/04/09 10:52] (Version actuelle) – nekan | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== EJBCA - Création | + | ====== EJBCA - Création |
| <label type=" | <label type=" | ||
| - | Dans cette procédure, nous allons mettre en place un certificat | + | Dans cette procédure, nous allons mettre en place une autorité de certification |
| - | Réf. : [[https:// | + | Réf. : [[https:// |
| Réf. : [[https:// | Réf. : [[https:// | ||
| - | ===== Création | + | ===== Création |
| - | ==== Création du profil | + | ==== Profil pour une autorité racine |
| - | * On se connecte sur l' | + | * On se connecte sur l' |
| <image shape=" | <image shape=" | ||
| * On clone le profil par défaut '' | * On clone le profil par défaut '' | ||
| Ligne 32: | Ligne 32: | ||
| * **Issuer Alternative Name** | * **Issuer Alternative Name** | ||
| <image shape=" | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * on décoche **LDAP DN order** | ||
| + | * on sauvegarde les modifications en cliquant sur '' | ||
| + | <image shape=" | ||
| + | ==== Profil pour une autorité intermédiaire ==== | ||
| + | * De retour sur la liste des profils, on clone désormais le profil par défaut '' | ||
| + | <image shape=" | ||
| + | * On nomme le nouveau profil et on clique sur '' | ||
| + | <image shape=" | ||
| + | * On édite le profil nouvellement créé : | ||
| + | <image shape=" | ||
| + | * On commence par choisir : | ||
| + | * **Available Key Algorithms** : '' | ||
| + | * **Available ECDSA curves** : '' | ||
| + | * **Signature Algorithm** : '' | ||
| + | * **Validity or end date of the certificate** : '' | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * on coche '' | ||
| + | * on entre la valeur '' | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * **CRL Distribution Points** | ||
| + | * **Use CA defined CRL Distribution Point** | ||
| + | * **Authority Information Access** | ||
| + | * **Use CA defined OCSP locator** | ||
| + | * **Use CA defined CA issuer** | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * on décoche **LDAP DN order** | ||
| + | * on sauvegarde en cliquant sur '' | ||
| + | <image shape=" | ||
| + | |||
| + | ===== Créations des clés ===== | ||
| + | |||
| + | Maintenant que les profils sont prêts, il nous faut créer les clés privées nécessaires aux différentes autorités. La procédure suivante est donc à réaliser deux fois, une pour l' | ||
| + | |||
| + | * Sur l' | ||
| + | <image shape=" | ||
| + | * Dans la page qui s' | ||
| + | * on nomme le jeu de clés | ||
| + | * on entre un mot de passe d' | ||
| + | * on confirme le mot de passe | ||
| + | * on sauvegarde avec le bouton '' | ||
| + | <image shape=" | ||
| + | * Dans la section qui apparaît en dessous, on va créer 3 clés (une pour le chiffrement, | ||
| + | ^Clé | ||
| + | |SignKey | ||
| + | |EncryptKey | ||
| + | |TestKey | ||
| + | * Ce qui nous donne : | ||
| + | <image shape=" | ||
| + | |||
| + | ===== Création des autorités ===== | ||
| + | |||
| + | Si les deux profils d' | ||
| + | |||
| + | ==== Autorité racine ==== | ||
| + | |||
| + | * On va dans '' | ||
| + | <image shape=" | ||
| + | * On commence par définir : | ||
| + | * **Crypto Token** : On choisit le jeux de clés créé pour l' | ||
| + | * **Signing Algorithm** : On choisit '' | ||
| + | * **defaultKey** : On choisit la clé créée pour le chiffrement. | ||
| + | * **certSignKey** : On choisit la clé créée pour la signature. | ||
| + | * **testKey** : On choisit la clé créée pour les tests d' | ||
| + | * **Description** : Optionnel, cette description permet de mieux identifier l' | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * **Subject DN** : On entrera dans une seule chaîne de caractère, 3 champs séparés par des virgules. On aura un champs '' | ||
| + | * **Signed By** : On sélectionne '' | ||
| + | * **Certificate Profile** : On choisit le profil créé pour l' | ||
| + | * **Validity** : On entre '' | ||
| + | * **LDAP DN order** : on décoche la case '' | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * **CRL Expire Period** : On choisira '' | ||
| + | * **CRL Overlap Time** : On choisira '' | ||
| + | <image shape=" | ||
| + | * On va en bas de la page et on clique sur '' | ||
| + | <image shape=" | ||
| + | |||
| + | ==== Autorité intermédiaire ==== | ||
| + | |||
| + | * On commence par créer une nouvelle autorité comme pour l' | ||
| + | * **Crypto Token** : On choisit le jeux de clés créé pour l' | ||
| + | * **Signing Algorithm** : SHA512withECSDSA | ||
| + | * **defaultKey** : On choisit la clé créée pour le chiffrement. | ||
| + | * **certSignKey** : On choisit la clé créée pour la signature. | ||
| + | * **testKey** : On choisit la clé créée pour les tests d' | ||
| + | * **Description** : Optionnel, cette description permet de mieux identifier l' | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * **Subject DN** : On entrera dans une seule chaîne de caractère, 3 champs séparés par des virgules. On aura un champs '' | ||
| + | * **Signed By** : On sélectionne l' | ||
| + | * **Certificate Profile** : On choisit le profil créé pour l' | ||
| + | * **Validity** : On entre '' | ||
| + | * **LDAP DN order** : on décoche la case '' | ||
| + | <image shape=" | ||
| + | * Dans la section '' | ||
| + | * **CRL Expire Period** : On choisira '' | ||
| + | * **CRL Issue Interval** : On choisira '' | ||
| + | * **CRL Overlap Time** : On choisira '' | ||
| + | <image shape=" | ||
| + | * Enfin, comme pour l' | ||
| + | |||
| + | ===== Déploiement des certificats racine et intermédiaire sur les postes clients ===== | ||
| + | |||
| + | Quels que soient les clients sur lesquels installer les certificats des autorités de certifications, | ||
| + | <image shape=" | ||
| + | |||
| + | ==== Windows par GPO ==== | ||
| + | |||
| + | * On place les certificats racine et intermédiaire dans le dossier '' | ||
| + | * On crée un '' | ||
| + | * Dans '' | ||
| + | * **Autorités de certification racines de confiance** : on importe le certificat racine. | ||
| + | * **Autorités de certification intermédiaires** : on importe le certificat intermédiaire. | ||
| + | |||
| + | ==== Linux via puppet ==== | ||
| + | |||
| + | * Sur notre serveur '' | ||
| + | * On crée la classe suivante : | ||
| + | < | ||
| + | |||
| + | # Création du dossier de dépôt | ||
| + | file {'/ | ||
| + | ensure | ||
| + | owner => ' | ||
| + | group => ' | ||
| + | mode => ' | ||
| + | } | ||
| + | | ||
| + | # Déploiement du certification racine | ||
| + | file {'/ | ||
| + | ensure | ||
| + | owner => ' | ||
| + | group => ' | ||
| + | mode => ' | ||
| + | content => file(' | ||
| + | } | ||
| + | | ||
| + | # Déploiement du certificat intermédiaire | ||
| + | file {'/ | ||
| + | ensure | ||
| + | owner => ' | ||
| + | group => ' | ||
| + | mode => ' | ||
| + | content => file(' | ||
| + | } | ||
| + | | ||
| + | # Ajout du certificat racine dans la bibliothèque des certificats | ||
| + | file_line { ' | ||
| + | ensure | ||
| + | match => " | ||
| + | path => '/ | ||
| + | line => ' | ||
| + | } | ||
| + | | ||
| + | # Ajout du certificat intermédiaire dans la bibliothèque des certificats | ||
| + | file_line { ' | ||
| + | ensure | ||
| + | match => " | ||
| + | path => '/ | ||
| + | line => ' | ||
| + | } | ||
| + | | ||
| + | # Mise à jour de la bibliothèque en cas de modification | ||
| + | exec { ' | ||
| + | command | ||
| + | subscribe => [ | ||
| + | File['/ | ||
| + | File['/ | ||
| + | ], | ||
| + | refreshonly => true, | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * Il ne reste plus qu'à ajouter la classe aux postes concernés dans le fichier '' | ||
| + | <callout type=" | ||
| + | ===== Conclusion ===== | ||
| + | Désormais, nous disposons d'une autorité de certification racine et d'une autorité intermédiaire fonctionnelles et toutes deux reconnues par les postes clients de l' | ||
| + | * Création d'un certificat TLS pour un serveur web : [[ejbca_tls|Lien]] | ||
| + | * Création d'un certificat TLS pour s' | ||
| ~~DISCUSSION~~ | ~~DISCUSSION~~ | ||