Authentification par certificat client SSL
Le logiciel client qui veut établir une connexion sécurisée à un serveur en utilisant le protocole SSL (Secure Socket Layer) commence en exploitant le protocole SSL ou le protocole étendu appelé TLS (Transport Layer Security) pour établir la liaison SSL avec les certificats SSL. Un certificat personnel peut représenter le serveur ou un client et il est signé par une autorité de certification (CA) pour que le certificat personnel soit correctement identifié.
SSL garantit que l'administrateur dispose du certificat de signataire CA utilisé pour signer le certificat personnel et qui est stocké sur le client et/ou dans le fichier de clés certifiées du serveur. L'authentification du certificat client a lieu lors de l'établissement de la liaison SSL en utilisant les certificats SSL.
- Le serveur doit déterminer si l'authentification client doit avoir lieu. L'authentification client doit être activée dans la configuration SSL du serveur et la configuration CSIv2 (Common Secure Interoperability version 2) si le protocole IIOP (Inter-ORB Protocol) est utilisé.
- La configuration CSIv2 doit avoir lieu dans la sécurité globale et non pas dans un domaine de sécurité.
- Le certificat du signataire du client doit être extrait du fichier de clés du client et ajouté au fichier de clés certifiées du serveur
- Le certificat du signataire du serveur doit être extrait du fichier de clés du serveur et ajouté au fichier de clés certifiées du client.
Configuration d'un serveur WebSphere pour l'authentification client
L'authentification du certificat client se produit si le serveur demande au client d'envoyer le certificat. Un serveur Websphere peut être configuré pour authentifier les certificats des clients dans la configuration SSL. Toutefois, si l'authentification de client SSL est nécessaire pour IIOP, elle doit être configurée dans la configuration CSIv2.
- Cliquez sur .
- Sélectionnez une configuration SSL.
- Dans Propriétés supplémentaires, sélectionnez Paramètres de la qualité de protection (QoP).
- Dans Authentification des clients, sélectionnez Requis.
- Cliquez sur OK pour enregistrer les modifications.
- Cliquez sur .
- Sous Sécurité RMI/IIOP, cliquez sur Communications entrantes CSIv2.
- Dans la section de la couche de transport CSIv2 et sous l'authentification de certificat client, sélectionnez Requis.
- Cliquez sur OK pour enregistrer les modifications.
Si le client est configuré pour l'authentification, le certificat du signataire du cluent doit être ajouté au fichier de clés certifiées du serveur. Lorsque vous disposez d'un certificat du client dans un fichier certificat il peut être ajouté au fichier des clés certifiées du serveur.
- Cliquez sur .
- Sélectionnez le fichier de clés certifiées configuré pour l'authentification du client.
- Dans Propriétés supplémentaires, sélectionnez Certificats de signataire.
- Cliquez sur Ajouter.
- Dans la zone Alias, tapez un alias pour enregistrer le certificat sous ce nom.
- Dans la zone Nom de fichier, tapez le chemin complet d'accès au fichier certificat.
- Cliquez sur OK pour enregistrer les modifications.
Configuration du client pour l'authentification client
Clients :
Les clients d'administration, les clients légers ou les clients purs doivent disposer d'un certificat personnel dans leurs fichiers de clés. Le fichier de clés par défaut du client WebSphere qui est créé lors de l'installation WebSphere Application Server contient déjà un certificat personnel. Ce fichier de clés se trouve dans le fichier ssl.client.props dans la propriété com.ibm.ssl.keyStore. Les fichiers de clés client ne sont pas gérés par WebSphere Application Server. Par conséquent l'utilitaire de gestion Key Management (Keyman) ou l'utilitaire Java™ keytool peut être utilisé pour extraire le certificat vers un fichier certificat.
- Démarrez iKeyman.
- Sélectionnez .
- Entrez le chemin du fichier de clés. Vous pouvez l'obtenir depuis le fichier ssl.client.props.
- Cliquez sur OK.
- Entrez le mot de passe du fichier de clés et cliquez sur OK
- Sous Certificats personnels, sélectionnez le certificat client par défaut.
- Entrez un chemin et un nom pour le fichier de certificat et cliquez sur OK.
Le fichier qui contient le certificat extrait peut être utilisé pour ajouter le signataire au fichier de clés certifiées du serveur. Suivez les étapes dans "Configuration d'un serveur WebSphere pour l'authentification client" pour ajouter le signataire au fichier de clés certifiées du serveur.
- Activer SSL :
com.ibm.CSI.performTransportAssocSSLTLSSupported=true com.ibm.CSI.performTransportAssocSSLTLSRequired=false
- Désactiver l'authentification client dans la couche de messages :
com.ibm.CSI.performClientAuthenticationRequired=false com.ibm.CSI.performClientAuthenticationSupported=false
- Activer l'authentification client dans la couche transport (pris en
charge, mais pas obligatoire) :
com.ibm.CSI.performTLClientAuthenticationRequired=false com.ibm.CSI.performTLClientAuthenticationSupported=true
Les clients légers et les clients prus peuvent ne pas utiliser le fichier de propriétés SSL WebSphere Application Server, ssl.client.props. Ils utilisent généralement les propriétés système Java pour définir le fichier de clés du client et le fichier de clés certifiées. Le certificat du signataire du serveur doit être ajouté au fichier des clés certifiées défini avec la propriété système java.net.ssl.trustStore. Keytool ou iKeyman peuvent être utilisés pour ajouter le certificat du signataire. Le signataire doit être extrait du certificat personnel dans le fichier de clés défini par la propriété système javax.net.ssl.keyStore et ajouté au fichier de clés certifiées du serveur.
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
javax.net.ssl.keyStoreType
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.trustStoreType
Serveur faisant office de client :
le client peut être un serveur WebSphere faisant office de client. Dans ce cas, déterminez la configuration SSL utilisée comme client de la communication, extrayez le signataire du certificat et ajoutez-le au fichier de clés certifiées du serveur. Il est recommandé d'utiliser le signataire du certificat racine.
- Cliquez sur > Certificat SSL et gestion des clés > Fichiers de clés et certificats.
- Dans la liste déroulante des utilisations de fichier de clés, sélectionnez Fichier de clés du certificat racine.
- Sélectionnez DmgrDefaultRootStore (pour un serveur de déploiement réseau) ou NodeDefaultRootStore (pour un serveur d'applications).
- Dans Propriétés supplémentaires, cliquez sur Certificats personnels.
- Sélectionnez le certificat racine par défaut (appelé root généralement), puis cliquez sur Extraire.
- Dans la zone de nom Fichier certificat
- Cliquez sur OK pour sauvegarder.
Le fichier certificat créé peut être placé sur le serveur et ajouté au fichier de clés certifiées du serveur.
Lorsqu'un serveur fait office de client, le serveur côté client nécessite le signataire du serveur de destination. Le signataire peut être extrait en utilisant l'option Extraire du port du certificat du signataire.
- Cliquez sur .
- Sélectionnez le fichier de clés du serveur dans la collection.
- Dans la section Propriétés supplémentaires, sélectionnez Certificats de signataire.
- Cliquez sur Retrieve from port.
- Entrez un nom d'hôte de destination et un nom de port de destination.
- Entez un nom d'alias pour le certificat.
- Cliquez sur Récupérer les informations du signataire.
- Cliquez sur OK pour sauvegarder.
Vous pouvez également utiliser la commande retrieveSignerFromPort pour extraire le signataire du port. Voir le groupe de commandes SignerCertificateCommands pour l'objet AdminTask pour plus d'informations sur cette commande.
Configuration d'un navigateur pour l'authentification client :
Lorsque WebSphere Application Server est configuré pour l'authentification du certificat client et qu'une tentative d'accès au serveur est effectuée depuis un navigateur, le navigateur doit disposer d'un certificat pour l'authentification de certificat client. Si la configuration SSL par défaut du serveur a été modifiée pour utiliser l'authentification du certificat client, vous ne pouvez pas vous connecter à la console d'administration.
Vous pouvez créer un certificat pour le navigateur en utilisant la console d'administration. Vous devez créer un fichier de clés et créer une certificat chaîné. Une fois le certificat créé, utilisez les instructions du navigateur pour importer un certificat. Les navigateurs nécessitent que chaque partie de la chaîne soit ajoutée pour vérifier le certificat pour que le certificat doit extrait et ajouté au navigateur. Suivez les instructions dans la section "Configuration du côté client pour l'authentification client" pour plus d'informations sur l'extraction du certificat racine.
- Cliquez sur .
- Cliquez sur Nouveau.
- Entrez le nom du fichier de clés.
- Indiquez le chemin d'accès complet au fichier de clés certifiées.
- Entrez le mot de passe du fichier de clés et confirmez.
- Cliquez sur OK pour sauvegarder.
- Cliquez sur .
- Sélectionnez le fichier de clés que vous avez créé.
- Dans le menu Propriétés supplémentaires, cliquez sur Certificats personnels.
- Dans la liste déroulante du bouton Créer, sélectionnez Certificat chaînés.
- Entez un nom d'alias pour le certificat.
- Entrez un nom commun pour le certificat. Le nom est la partie "CN=" du sujet DN.
- Vous pouvez entrer des informations dans les autres zones pour créer le sujet DN du certificat chaîné.
- Cliquez sur OK pour sauvegarder.
Vous pouvez également utiliser la commande createKeyStore pour créer un fichier de clés. Voir le groupe de commandes KeyStoreCommands pour l'objet AdminTask pour plus d'informations sur cette commande.
Vous pouvez également utiliser la commande createChainedCertificate pour créer un certificat chaîné. Voir le groupe de commandes PersonalCertificateCommands de l'objet AdminTask pour plus d'informations sur cette commande.
Authentification de certificat Web
L'authentification de base de certificat peut être exécutée sur les modules Web Java 2 Platform, Enterprise Edition (J2EE) lorsque les modules sont configurés pour l'authentification de certificat client. Ainsi, un utilisateur peut se connecter à un module Web en utilisant un certificat pour s'authentifier et pour mapper le certificat à un utilisateur dans le registre.
L'activation de l'authentification de certificat Web nécessite que la configuration SSL du serveur soit définie pour l'authentification de certificat client sur le serveur où est installé le module.
Le serveur détermine que l'authentification du client doit avoir lieu. Voir la section "Configuration d'un serveur WebSphere pour l'authentification client" pour plus d'informations sur la configuration de l'authentification client. Le client doit disposer du signataire du serveur pour ajouter le client au fichier de clés certifiées. Voir la section "Configuration de l'authentification client" pour plus d'informations.
Le fichier web.xml du module Web doit avoir la méthode d'authentification fixée sur CLIENT-AUTH dans la section login-config du fichier web.xml :
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
Le certificat doit être mappé à un utilisateur dans le registre pour pouvoir vous connecter au module Web.
Pour les registres d'utilisateurs localOS, la valeur CN du DN du sujet de certificat doit être mappée à un utilisateur dans le registre d'utilisateurs SE local. Par exemple, si le DN du sujet de certificat est CN=tester,o=ibm,c=us, tester est l'utilisateur rechercher dans le registre d'utilisateurs local. Si l'utilisateur n'existe pas dans le registre local, l'authentification échoue.
Le registre d'utilisateurs LDAP (Lightweight Directory Access Protocol) fournit plusieurs options pour mapper un certificat à une identité d'utilisateur. Le mode de mappage de certificat par défaut dans LDAP est utilisé pour une correspondance DN exacte entre l'entrée dans le registre LDAP et le DN de sujet dans le certificat. Par exemple, si le DN de certificat est CN=user1,o=ibm,c=us, il doit existe une entrée dans le registre LDAP ayant exactement cette valeur. Le registre d'utilisateurs LDAP dispose également d'une option de filtrage de certificat qui peut fournir un correspondance à une partie du DN du sujet de certificat par rapport à des entrées dans le référentiel LDAP. Pour plus d'informations sur le mappage de certificat LDAP, voir "Paramètres de configuration de référentiel LDAP (Lightweight Directory Access Protocol)".
Par défaut, dans une configuration de référentiels fédérés, la connexion par certificat client n'est pas prise en charge pour les référentiels de fichiers. Pour activer la prise en charge du mappage de certificats dans le référentiel basé fichiers, suivez la procédure indiquée dans la rubrique Activation de la prise en charge de connexion de certificat client dans un référentiel basé fichiers de référentiels fédérés.
Le registre LDAP du référentiel fédéré prend en charge le mappage des certificats. Il utilise les mêmes règles de mappage que le registre d'utilisateurs LDAP.
Le registre d'utilisateurs personnalisés peut mapper des certificats à un utilisateur si le registre personnalisé implémente la méthode mapCertificate().