Chapitre 4. Convertir les formats de certificats pour qu'ils fonctionnent avec l'IdM
Cette histoire d'utilisateur décrit comment s'assurer qu'en tant qu'administrateur du système IdM, vous utilisez le format correct d'un certificat avec des commandes IdM spécifiques. Ceci est utile, par exemple, dans les situations suivantes :
- Vous êtes en train de charger un certificat externe dans un profil d'utilisateur. Pour plus d'informations, voir Conversion d'un certificat externe à charger dans un compte utilisateur IdM.
- Vous utilisez un certificat d'autorité de certification externe lorsque vous configurez le serveur IdM pour l'authentification par carte à puce ou lorsque vous configurez le client IdM pour l'authentification par carte à puce afin que les utilisateurs puissent s'authentifier auprès d'IdM à l'aide de cartes à puce dotées de certificats émis par l'autorité de certification externe.
- Vous exportez un certificat d'une base de données NSS dans un format PKCS #12 qui comprend à la fois le certificat et la clé privée. Pour plus de détails, voir Exportation d'un certificat et d'une clé privée d'une base de données NSS vers un fichier PKCS #12.
4.1. Formats et encodages des certificats dans l'IdM
L'authentification par certificat, y compris l'authentification par carte à puce dans l'IdM, se fait en comparant le certificat présenté par l'utilisateur avec le certificat ou les données du certificat qui sont stockés dans le profil IdM de l'utilisateur.
Configuration du système
Ce qui est stocké dans le profil IdM est uniquement le certificat, et non la clé privée correspondante. Lors de l'authentification, l'utilisateur doit également montrer qu'il est en possession de la clé privée correspondante. Pour ce faire, l'utilisateur présente soit un fichier PKCS #12 contenant à la fois le certificat et la clé privée, soit deux fichiers : l'un contenant le certificat et l'autre la clé privée.
Par conséquent, les processus tels que le chargement d'un certificat dans un profil d'utilisateur n'acceptent que les fichiers de certificat qui ne contiennent pas la clé privée.
De même, lorsqu'un administrateur système vous fournit un certificat d'une autorité de certification externe, il ne fournit que les données publiques : le certificat sans la clé privée. L'utilitaire ipa-advise
permettant de configurer le serveur IdM ou le client IdM pour l'authentification par carte à puce s'attend à ce que le fichier d'entrée contienne le certificat de l'autorité de certification externe, mais pas la clé privée.
Encodage des certificats
Il existe deux encodages de certificats courants : Privacy-enhanced Electronic Mail (PEM
) et Distinguished Encoding Rules (DER
). Le format base64
est presque identique au format PEM
, mais il ne contient pas l'en-tête et le pied de page -----BEGIN CERTIFICATE-----/-----END CERTIFICATE-----
.
Un certificat qui a été encodé à l'aide de DER
est un fichier de certificat numérique X509 binaire. En tant que fichier binaire, le certificat n'est pas lisible par l'homme. Les fichiers DER
utilisent parfois l'extension de nom de fichier .der
, mais les fichiers portant les extensions .crt
et .cer
contiennent aussi parfois des certificats DER
. Les fichiers DER
contenant des clés peuvent être nommés .key
.
Un certificat qui a été encodé à l'aide de PEM
Base64 est un fichier lisible par l'homme. Le fichier contient des données blindées ASCII (Base64) préfixées par une ligne "-----BEGIN ...". Les fichiers PEM
utilisent parfois l'extension de nom de fichier .pem
, mais les fichiers avec les extensions de nom de fichier .crt
et .cer
contiennent aussi parfois des certificats PEM
. Les fichiers PEM
contenant des clés peuvent être nommés .key
.
Les différentes commandes ipa
ont des limitations différentes en ce qui concerne les types de certificats qu'elles acceptent. Par exemple, la commande ipa user-add-cert
n'accepte que les certificats encodés au format base64
, tandis que ipa-server-certinstall
accepte les certificats PEM, DER, PKCS #7, PKCS #8
et PKCS #12
.
Format d'encodage | Lisible par l'homme | Extensions de nom de fichier courantes | Exemples de commandes IdM acceptant le format d'encodage |
---|---|---|---|
PEM/base64 | Oui | .pem, .crt, .cer | ipa user-add-cert, ipa-server-certinstall, .. |
DER | Non | .der, .crt, .cer | ipa-server-certinstall, .. |
Les commandes et formats de certificats dans l'IdM répertorient d'autres commandes ipa
avec les formats de certificats acceptés par les commandes.
Authentification de l'utilisateur
Lorsqu'il utilise l'interface web pour accéder à l'IdM, l'utilisateur prouve qu'il est en possession de la clé privée correspondant au certificat, les deux étant stockés dans la base de données du navigateur.
Lorsqu'il utilise le CLI pour accéder à IdM, l'utilisateur prouve qu'il est en possession de la clé privée correspondant au certificat par l'une des méthodes suivantes :
L'utilisateur ajoute, comme valeur du paramètre
X509_user_identity
de la commandekinit -X
, le chemin d'accès au module de carte à puce connecté à la carte à puce qui contient à la fois le certificat et la clé :$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so'
idm_user
L'utilisateur ajoute deux fichiers comme valeurs du paramètre
X509_user_identity
de la commandekinit -X
, l'un contenant le certificat et l'autre la clé privée :$ kinit -X X509_user_identity='FILE:`/path/to/cert.pem,/path/to/cert.key`'
idm_user
Commandes de certificats utiles
Pour afficher les données du certificat, telles que le sujet et l'émetteur :
$ openssl x509 -noout -text -in ca.pem
Comparer en quoi deux certificats diffèrent :
$ diff cert1.crt cert2.crt
Pour comparer les lignes sur lesquelles deux certificats diffèrent, les résultats étant affichés sur deux colonnes :
$ diff cert1.crt cert2.crt -y