Création — Nicolas THOREZ 2024/03/20 12:51
Dans cette procédure, nous allons mettre en place une autorité de certification racine et une autorité intermédiaire pour valider différents certificats utilisateurs et/ou serveurs sur notre infrastructure.
Réf. : EJBCA (RootCA en RSA)
Réf. : EJBCA (RootCA et SubCA en ECDSA)
EJBCA et on va dans Certificate Profiles :
ROOTCA :
Create from template :

ECDSAP-256 / prime256v1 / secp256r110y
X.509v3 extensions, on décoche :
X.509v3 extensions : Names, on décoche :
Other Data :Save
SUBCA :
Create from template :

ECDSAP-256 / prime256v1 / secp256r1Inherit from Issuing CA5y
X.509v3 extensions, à la ligne Path Length Constraint :Add…0 dans la zone Value
X.509v3 extensions - Validation data, on coche :
Other Data :Save
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'autorité racine et une pour l'autorité intermédiaire.
Crypto Tokens et on clique sur Create new… :
Save
Generate new key pair :^Clé ^Protocole ^
| SignKey | ECDSA P-256 / prime256v1 / secp256r1 |
| EncryptKey | RSA 4096 |
| TestKey | ECDSA P-256 / prime256v1 / secp256r1 |
* Ce qui nous donne :
Si les deux profils d'autorités et les deux jeux de clés sont prêt, on peut passer à la création des autorités de certifications.
Certification Authorities, on donne un nom pour notre autorité racine dans la section Add CA et on clique sur Create… :
SHA512withECSDSA.
CA Certificate Data, on définit :CN= qui indique le nom de l'autorité, un champs O= qui indique le nom de l'organisation ou entreprise de l'autorité et un champs C= pour indiqué le pays de l'autorité.Self Signed.10y.Use.
CRL Specific Data, on définit :3mo.0m.
Create :

CA Certificate Data, on définit :CN= qui indique le nom de l'autorité, un champs O= qui indique le nom de l'organisation ou entreprise de l'autorité et un champs C= pour indiqué le pays de l'autorité.5y (la moitié de l'autorité racine).Use.
CRL Specific Data, on définit :3mo.1d.0m.
Create.
Quels que soient les clients sur lesquels installer les certificats des autorités de certifications, il nous faut d'abord récupérer ces derniers. Pour cela, on peut les télécharger depuis la page de gestion (RA Web) dans le menu CA Certificates and CRLs en utilisant le bouton Download Certificate Bundle :
SYSVOL du contrôleur de domaine.GPO que l'on édite :Configuration ordinateur, Stratégies, Paramètres Windows, Paramètres de sécurité, Stratégie de clé publique :puppet, on place les certificats racine et intermédiaire au format PEM dans le dossier /etc/puppetlabs/code/environments/production/modules/file/files/, par exemple sous les noms RootCA.pem et SubCA.pem.class install_ca {
# Création du dossier de dépôt
file {'/usr/share/ca-certificates/extra':
ensure => 'directory',
owner => 'root',
group => 'root',
mode => '0750',
}
# Déploiement du certification racine
file {'/usr/share/ca-certificates/extra/RootCA.pem':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0644',
content => file('file/RootCA.pem'),
}
# Déploiement du certificat intermédiaire
file {'/usr/share/ca-certificates/extra/SubCA.pem':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0644',
content => file('file/SubCA.pem'),
}
# Ajout du certificat racine dans la bibliothèque des certificats
file_line { 'RootCA':
ensure => present,
match => "^extra/RootCA.pem",
path => '/etc/ca-certificates.conf',
line => 'extra/RootCA.pem',
}
# Ajout du certificat intermédiaire dans la bibliothèque des certificats
file_line { 'SubCA':
ensure => present,
match => "^extra/SubCA.pem",
path => '/etc/ca-certificates.conf',
line => 'extra/SubCA.pem',
}
# Mise à jour de la bibliothèque en cas de modification
exec { 'update-ca-certificates':
command => '/usr/sbin/update-ca-certificates',
subscribe => [
File['/usr/share/ca-certificates/extra/RootCA.pem'],
File['/usr/share/ca-certificates/extra/SubCA.pem'],
],
refreshonly => true,
}
}
node.pp ou à tous les postes via le fichier site.pp.Debian et Ubuntu, les navigateurs Firefox et Chrome utilisent leurs propres banques de certificats. Il faudra donc les importer manuellement.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'organisation. L'étape suivante est de créer des certificats pour nos besoins.