10.2. Demander un nouveau certificat d'utilisateur et l'exporter vers le client
En tant qu'administrateur de la gestion des identités (IdM), vous pouvez créer des certificats pour les utilisateurs dans votre environnement IdM et les exporter vers les clients IdM sur lesquels vous souhaitez activer l'authentification par certificat pour les utilisateurs.
Vous pouvez ignorer cette section si l'utilisateur que vous souhaitez authentifier à l'aide d'un certificat dispose déjà d'un certificat.
Procédure
Si vous le souhaitez, créez un nouveau répertoire, par exemple
~/certdb/
, et faites-en une base de données de certificats temporaire. Si on vous le demande, créez un mot de passe pour la base de données des certificats NSS afin de crypter les clés du certificat qui sera généré lors d'une étape ultérieure :# mkdir
~/certdb/
# certutil -N -d~/certdb/
Enter a password which will be used to encrypt your keys. The password should be at least 8 characters long, and should contain at least one non-alphabetic character. Enter new password: Re-enter password:Créez la demande de signature de certificat (CSR) et redirigez la sortie vers un fichier. Par exemple, pour créer une CSR avec le nom
certificate_request.csr
pour un certificat bit4096
pour l'utilisateuridm_user
dans le domaineIDM.EXAMPLE.COM
, en définissant le surnom des clés privées du certificat àidm_user
pour faciliter la recherche, et en définissant le sujet àCN=idm_user,O=IDM.EXAMPLE.COM
:# certutil -R -d
~/certdb/
-a -g4096
-nidm_user
-s "CN=idm_user
,O=IDM.EXAMPLE.COM" >certificate_request.csr
À l'invite, saisissez le même mot de passe que celui que vous avez saisi lorsque vous avez utilisé
certutil
pour créer la base de données temporaire. Continuez ensuite à taper randlomly jusqu'à ce qu'on vous dise d'arrêter :Enter Password or Pin for "NSS Certificate DB": A random seed must be generated that will be used in the creation of your key. One of the easiest ways to create a random seed is to use the timing of keystrokes on a keyboard. To begin, type keys on the keyboard until this progress meter is full. DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD! Continue typing until the progress meter is full:
Soumettez le fichier de demande de certificat au serveur. Indiquez le principal Kerberos à associer au certificat nouvellement émis, le fichier de sortie dans lequel stocker le certificat et, éventuellement, le profil du certificat. Par exemple, pour obtenir un certificat du profil
IECUserRoles
, un profil avec l'extension des rôles d'utilisateur ajoutés, pour le principalidm_user
@IDM.EXAMPLE.COM
, et l'enregistrer dans le fichier~/idm_user.pem
:# ipa cert-request
certificate_request.csr
--principal=idm_user
@IDM.EXAMPLE.COM
--profile-id=IECUserRoles
--certificate-out=~/idm_user.pem
Ajoutez le certificat à la base de données NSS. Utilisez l'option
-n
pour définir le même surnom que celui que vous avez utilisé lors de la création de la CSR, afin que le certificat corresponde à la clé privée dans la base de données NSS. L'option-t
définit le niveau de confiance. Pour plus de détails, voir la page de manuel certutil(1). L'option-i
spécifie le fichier de certificat d'entrée. Par exemple, pour ajouter à la base de données NSS un certificat avec le pseudonymeidm_user
qui est stocké dans le fichier~/idm_user.pem
de la base de données~/certdb/
:# certutil -A -d
~/certdb/
-nidm_user
-t "P,," -i~/idm_user.pem
Vérifiez que la clé dans la base de données NSS n'indique pas
(orphan)
comme surnom. Par exemple, pour vérifier que le certificat stocké dans la base de données~/certdb/
n'est pas orphelin :# certutil -K -d
~/certdb/
< 0> rsa 5ad14d41463b87a095b1896cf0068ccc467df395 NSS Certificate DB:idm_userUtilisez la commande
pk12util
pour exporter le certificat de la base de données NSS au format PKCS12. Par exemple, pour exporter le certificat avec le pseudonymeidm_user
de la base de données NSS/root/certdb
vers le fichier~/idm_user.p12
:# pk12util -d
~/certdb
-o~/idm_user.p12
-nidm_user
Enter Password or Pin for "NSS Certificate DB": Enter password for PKCS12 file: Re-enter password: pk12util: PKCS12 EXPORT SUCCESSFULTransférez le certificat vers l'hôte sur lequel vous souhaitez activer l'authentification par certificat pour
idm_user
:# scp
~/idm_user.p12
idm_user@client.idm.example.com:/home/idm_user/
Sur l'hôte vers lequel le certificat a été transféré, rendez le répertoire dans lequel le fichier .pkcs12 est stocké inaccessible au groupe "other" pour des raisons de sécurité :
# chmod o-rwx
/home/idm_user/
Pour des raisons de sécurité, supprimez la base de données NSS temporaire et le fichier .pkcs12 du serveur :
# rm
~/certdb/
# rm~/idm_user.p12