Contrôle des identités de certificat X.509 par le gestionnaire de clés
Le rôle d'un gestionnaire de clés JSSE ( Java™ Secure Socket Extension) consiste à extraire le certificat utilisé pour identifier le client ou le serveur au cours de l'établissement d'une liaison SSL (Secure Sockets Layer).
- com.ibm.ssl.keyStoreClientAlias
- Définit l'alias choisi dans le magasin de clés pour le côté client d'une connexion. Cet alias doit être présent dans le magasin de clés.
- com.ibm.ssl.keyStoreServerAlias
- Définit l'alias choisi dans le magasin de clés pour le côté serveur d'une connexion. Cet alias doit être présent dans le magasin de clés.
Avec WebSphere Application Server, vous ne pouvez configurer qu'un seul gestionnaire de clés à la fois pour une configuration SSL donnée. Si vous souhaitez disposer de la logique de sélection de certificat personnalisé côté client, vous devez écrire un nouveau gestionnaire de clés personnalisé. Ce dernier peut fournir une fonction qui invite l'utilisateur à choisir un certificat de manière dynamique. De plus, vous pouvez implémenter une interface étendue afin qu'un gestionnaire de clés puisse fournir des informations au cours de la connexion. Pour plus d'informations sur l'interface étendue, voir l'interface com.ibm.wsspi.ssl.KeyManagerExtendedInfo. Pour plus d'informations sur le développement du gestionnaire de clés personnalisé, voir Création d'un gestionnaire de clés personnalisé pour SSL.
Gestionnaire de clés IbmX509 par défaut
Le gestionnaire de clés IbmX509 par défaut choisit un certificat devant constituer l'identité d'un établissement de liaison SSL. Le gestionnaire de clés est appelé pour activer l'authentification client aux deux extrémités de la liaison SSL ; cet appel est fréquent côté serveur et moins fréquent côté client selon les conditions requises par le client et le serveur. Si un magasin de clés n'est pas configuré côté client et que l'authentification client SSL est activée, le gestionnaire de clés ne peut pas sélectionner un certificat à envoyer au serveur. Dans ces conditions, l'établissement de liaison échoue.
<keyManagers xmi:id="KeyManager_1" name="IbmX509"
provider="IBMJSSE2" algorithm="IbmX509" keyManagerClass=""
managementScope="ManagementScope_1"/>
Vous ne spécifiez pas la classe keyManagerClass car le gestionnaire de clés est fourni par le fournisseur IBMJSSE2. Vous pouvez toutefois indiquer si le gestionnaire de clés est une implémentation de classe personnalisée, auquel cas vous devez indiquer la classe keyManager ou un nom d'algorithme que WebSphere Application Server peut démarrer à partir de la structure du fournisseur de sécurité Java.Gestionnaire de clés personnalisé
L'exemple de code suivant indique la configuration de gestionnaire de clés dans le fichier security.xml pour une classe personnalisée.<keyManagers xmi:id="KeyManager_2" name="CustomKeyManager"
keyManagerClass="com.ibm.ws.ssl.core.CustomKeyManager"
managementScope="ManagementScope_1"/>
La classe personnalisée doit implémenter l'interface javax.net.ssl.X509KeyManager et, en option, l'interface com.ibm.wsspi.ssl.KeyManagerExtendedInfo afin d'extraire des informations supplémentaires sur WebSphere Application Server. Cette interface remplace la fonction du gestionnaire de clés par défaut car vous ne pouvez configurer qu'un seul gestionnaire de clés à la fois.
Ainsi, le gestionnaire de clés personnalisé est uniquement chargé de sélectionner l'alias à utiliser dans le magasin de clés configuré. Il a l'avantage d'autoriser le client à demander un alias.
Ce processus permet à l'utilisateur de décider quel certificat utiliser dans des cas où l'identité du client est connue. Pour plus d'informations, voir Création d'un gestionnaire de clés personnalisé pour SSL.