Magasins de clés

Liberty ne peut créer qu'un type de magasin de clés JKS (magasin de clés Java™). La prise en charge d'autres types de magasin de clés dans Liberty dépend des éléments pris en charge par l'environnement d'exécution Java (JRE) sous-jacent.

Pour plus d'informations sur l'attribut de configuration de l'élément keystore, voir Attributs de configuration SSL.

JKS et JCEKS

Les magasins de clés JKS (Java Keystore) et JCEKS (Java Cryptography Extensions Keystore) sont communs aux JRE IBM et Oracle, et peuvent être configurés à l'identique dans ces deux JRE. JKS est le type de magasin de clés par défaut dans Liberty et le seul type de magasin de clés que Liberty peut créer. Si aucun type de magasin de clés n'est spécifié dans la configuration, JKS est utilisé.

Voici un exemple de configuration de magasin de clés JKS :
     <keyStore id="sampleJKSKeyStore"
      location="MyKeyStoreFile.jks"
      type="JKS" password="myPassword" />
Voici un exemple de configuration de magasin de clés JCEKS :
    <keyStore id="sampleJCEKSKeyStore"
     location="MyKeyStoreFile.jceks"
     type="JCEKS" password="myPassword" />

Magasin de clés PKCS11

Un magasin de clés cryptographique matériel peut être configuré de sorte que le serveur Liberty puisse être utilisé pour fournir la prise en charge de jeton cryptographique.

L'utilisateur doit fournir un fichier de configuration spécifique de l'unité matérielle. Le fichier de configuration est un fichier texte qui contient des entrées au format attribute = value. Le fichier doit contenir au minimum les attributs name et library. Exemple :
name = HWDevice
library = /opt/foo/lib/libpkcs11.so

L'attribut name représente le nom qui est attribué à cette instance de l'unité. L'attribut library contient un chemin d'accès à la bibliothèque fournie par l'unité matérielle pour accéder à l'unité. Le fichier de configuration peut également contenir des données spécifiques de l'unité matérielle.

Pour qu'un magasin de clés PKCS11 puisse être configuré dans Liberty, l'élément keystore doit contenir les zones suivantes :
  • id - Identifie de manière unique l'élément keystore dans la configuration.
  • location - Chemin d'accès au fichier de configuration spécifique de l'unité matérielle.
  • type - PKCS11 doit être spécifié comme type de magasin de clés.
  • fileBased - Doit avoir pour valeur false pour identifier ce magasin de clés en tant qu'unité.
  • password - Mot de passe nécessaire pour accéder aux clés dans l'unité.
  • provider - Fournisseur nécessaire. Pour l'environnement d'exécution Java d'IBM®, la valeur doit être IBMPKCS11Impl et pour Oracle JRE, la valeur doit être SunPKCS11.
Voici un exemple de configuration :
<keyStore id="hwKeyStore" 
          location="${server.config.dir}/HWCrypto.cfg" 
          type="PKCS11" 
          fileBased="false" 
          password="{xor}Lz4sLCgwLTs=" 
          provider="IBMPKCS11Impl"/>  

Magasin de clés PKCS12

Le magasin de clés Public Key Cryptography Standards #12 (PKCS12) peut être utilisé mais ne peut pas être créé par Liberty lorsque vous utilisez le JRE IBM. Voici un exemple de configuration de magasin de clés PKCS12 :
    <keyStore id="samplePKCS12KeyStore"
     location="MyKeyStoreFile.p12"
     type="PKCS12" password="myPassword" />

Magasin de clés CMS

Le magasin de clés CMS peut être configuré (une configuration spéciale est requise) mais ne peut pas être créé par Liberty lorsque vous utilisez le JRE IBM. Le fournisseur CMS n'est pas disponible par défaut dans IBM JRE, par conséquent, il doit être ajouté à la liste de fournisseurs dans le fichier java.security de l'environnement IBM JRE. Dans l'exemple suivant, la classe com.ibm.security.cmskeystore.CMSProvider est ajoutée à la fin de la liste. Vérifiez que le numéro de fournisseur est correct dans la liste de fournisseurs. Liberty n'utilise pas le fichier de dissimulation du fichier de clés CMS pour accéder au fichier de clés.
    security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.2=com.ibm.crypto.provider.IBMJCE
    security.provider.3=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.4=com.ibm.security.cert.IBMCertPath
    security.provider.5=com.ibm.security.sasl.IBMSASL
    security.provider.6=com.ibm.xml.crypto.IBMXMLCryptoProvider
    security.provider.7=com.ibm.xml.enc.IBMXMLEncProvider
    security.provider.8=org.apache.harmony.security.provider.PolicyProvider
    security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.10=com.ibm.security.cmskeystore.CMSProvider
Pour utiliser le magasin de clés CMS, la configuration du fichier server.xml est la suivante :
    <keyStore id="sampleCMSKeyStore" 
     password="myPassword"
     location="MyKeyStoreFile.kdb"
     provider="IBMCMSProvider"
     type="CMSKS"/>
For z/OS platforms

Types de fichier de clés RACF

Des fichiers de clés RACF peuvent être utilisés mais ne peuvent pas être créés par Liberty, comme des magasins de clés sous z/OS. Les deux types disponibles sont JCERACFKS et JCEHYBRIDRACFKS.

Magasin de clés JCERACFKS
JCERACFKS est un fichier de clés RACF. Vous devez configurer RACF pour que Liberty puisse l'utiliser. Fournissez l'adresse URL du fichier de clés dans l'attribut location, et définissez l'attribut fileBased sur false.
Voici un exemple de magasin de clés JCERACFKS :
<keyStore id="sampleKeyring" location="safkeyring:///Keyring" 
 type="JCERACFKS" password="password" fileBased="false"
 readOnly="true" />
Fichier de clés JCEHYBRIDRACFKS
JCEHYBRIDRACFKS est un fichier de clés spécial qui vérifie si un type de magasin de clés matériel est configuré. Si le fichier de clés JCEHYBRIDRACFKS n'est pas configuré, le fichier de clés RACF est utilisé. Il est pris en charge sur IBM Java 7 SR3 et version ultérieure. Vous devez modifier le fichier java.security et ajouter la classe com.ibm.crypto.ibmjcehybrid.provider.IBMJCEHYBRID au haut de la liste de fournisseurs. Vérifiez que les nombres de fournisseurs sont ajustés pour la nouvelle entrée.
Voici un exemple d'utilisation du magasin de clés JCEHYBRIDRACFKS :
<keyStore id="sampleHybridKeyring" location="safkeyringhybrid:///HybridKeyring" 
 type="JCEHYBRIDRACFKS" password="{xor}Lz4sLCgwLTs=" fileBased="false" 
 readOnly="true" /> 

Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_sec_keystores.html