Pouvons-nous charger plusieurs certificats et clés dans un magasin de clés?
Est-il toujours nécessaire de charger uniquement des paires (c'est-à-dire des certificats et des clés ensemble)?
Si un magasin de clés possède plusieurs certificats et clés, lequel sera sélectionné lorsque Java SSL essaie d'établir la connexion en tant que serveur?
Bien que cela dépende du type de KeyStore, vous pouvez généralement stocker plusieurs clés privées et certificats dans un seul magasin.
La combinaison de clés et de certificats utilisée pour un serveur Java dépendra de la façon dont l'application a été mise en œuvre. Un certain nombre d'applications vous permettent de sélectionner un certificat donné en utilisant le nom d'alias . Les accesseurs de clé et de certificat dans KeyStore prennent un paramètre alias
pour faire ce choix. Habituellement, lorsque cela n'est pas spécifié dans la configuration, l'application ou le framework utilise la première solution appropriée trouvée sur la base de l'énumération KeyStore.aliases()
.
Tomcat, par exemple, utilise l'attribut keyAlias
dans son Configuration du connecteur :
keyAlias: alias utilisé pour le certificat de serveur dans le magasin de clés. S'il n'est pas spécifié, la première clé lue dans le magasin de clés sera utilisée.
En ce qui concerne les paires de clés, certains KeyStores (là encore, selon le type) peuvent être utilisés pour stocker SecretKey
s (par exemple DES), c'est-à-dire des clés partagées, ainsi que des paires de clés publiques-privées.
Vous pouvez avoir un magasin de clés avec autant de certificats et de clés que vous le souhaitez.
S'il existe plusieurs certificats dans un magasin de clés qu'un client utilise comme magasin de clés de confiance, tous les certificats sont examinés jusqu'à ce qu'un soit trouvé qui convienne. Vous pouvez regarder les certificats préinstallés, ils sont dans/lib/security/cacerts. C'est juste une grande collection de certificats d'autorité de certification racine.
Concernant les touches je ne sais pas. Je pense que le client utilise une clé signée par la même autorité de certification que le certificat fourni par le serveur et s'il y en a plusieurs, la première est utilisée. Mais je ne peux pas le dire avec certitude.