Liberty : Attributs de configuration SSL
Les configurations SSL contiennent les attributs nécessaires au contrôle du comportement de la couche transport SSL sur un serveur Liberty. Cette rubrique répertorie tous les paramètres disponibles pour une configuration SSL.
Fonction SSL
Pour activer SSL sur un serveur, vous devez inclure la fonction SSL dans le fichier server.xml correspondant :
<featureManager>
<feature>ssl-1.0</feature>
</featureManager>
Configuration SSL par défaut
Il est possible de définir plusieurs configurations SSL. Dans ce cas, la configuration SSL par défaut doit être spécifiée dans le fichier server.xml au moyen de la l'élément sslDefault.
Attribut | Description | Valeur par défaut |
---|---|---|
sslRef | L'attribut sslRef spécifie la configuration SSL à utiliser par défaut. | Le nom par défaut de la configuration SSL est defaultSSLConfig. |
<sslDefault sslRef="mySSLSettings" />
Configuration SSL
La configuration SSL est constituée d'attributs qui vous permettent de personnaliser l'environnement SSL en vue de l'adapter à vos besoins. Ces attributs peuvent être définis dans l'élément de configuration de service ssl, dans le fichier server.xml.
Attribut | Description | Valeur par défaut |
---|---|---|
id | L'attribut id affecte un nom unique à l'objet de configuration SSL. | Aucune valeur par défaut (un nom unique doit être spécifié). |
keyStoreRef | L'attribut keyStoreRef désigne l'objet de service keyStore qui définit le fichier de clés des configurations SSL. Le fichier de clés contient la clé requise pour établir une connexion SSL. | Aucune valeur par défaut (une référence de fichier de clés doit être spécifiée). |
trustStoreRef | L'attribut trustStoreRef désigne l'objet de service keyStore qui définit le fichier de clés certifiées des configurations SSL. Le fichier de clés certifiées contient les certificats nécessaires à la vérification des signatures. | trustStoreRef est un attribut facultatif. Si la référence manque, le fichier de clés spécifié par keyStoreRef est utilisé. |
clientAuthentication | L'attribut clientAuthentication détermine si l'authentification du client SSL est requise. | La valeur par défaut est false. |
clientAuthenticationSupported | L'attribut clientAuthenticationSupported détermine si l'authentification du client SSL est prise en charge. Le client n'a pas à fournir de certificat client. Si l'attribut clientAuthentication est mis à true, c'est ce réglage qui est pris en compte et la valeur de l'attribut clientAuthenticationSupported n'a alors plus d'importance. | La valeur par défaut est false. |
sslProtocol | L'attribut sslProtocol définit le protocole d'établissement de liaison SSL. Le protocole peut dépendre du SDK ; par conséquent, si vous le modifiez, veillez à ce que la valeur soit prise en charge par le SDK que vous exécutez. | La valeur par défaut est SSL_TLSv2 pour le JRE IBM® et SSL pour le JRE Oracle. |
securityLevel | L'attribut securityLevel détermine le groupe d'algorithmes de cryptographie à
utiliser par l'établissement de liaison SSL.
Cet attribut peut prendre l'une des valeurs suivantes :
|
La valeur par défaut est HIGH. |
enabledCiphers | L'attribut enabledCiphers sert à spécifier une liste unique d'algorithmes de chiffrement. Séparez chaque algorithme dans cette liste par un espace. Si l'attribut enabledCiphers est défini explicitement, sa valeur l'emporte sur l'attribut securityLevel (qui est alors ignoré). | Aucune valeur par défaut. |
serverKeyAlias | L'attribut serverKeyAlias désigne la clé du fichier de clés à utiliser comme clé des configurations SSL. Cet attribut est requis uniquement si le fichier de clés contient plusieurs entrées de clé. Si le fichier de clés contient plusieurs clés et que cet attribut n'en spécifie aucune en particulier, le JSSE la choisit lui-même. | Aucune valeur par défaut. |
clientKeyAlias | L'attribut clientKeyAlias désigne la clé du fichier de clés à utiliser comme clé des configurations SSL lorsque l'authentification du client est activée (clientAuthentication="true"). Cet attribut est requis uniquement si le fichier de clés contient plusieurs entrées de clé. | Aucune valeur par défaut. |
- Le gestionnaire de clés est utilisé par le processus d'établissement de liaison SSL pour déterminer quel alias de certificat utiliser. Le gestionnaire de clés n'est pas configuré dans le fichier server.xml. Il est obtenu d'après la propriété de sécurité ssl.KeyManagerFactory.algorithm du SDK.
- Le gestionnaire d'accréditation (trust manager) est utilisé par l'établissement de liaison SSL pour décider si l'autre partie est un tiers de confiance. Le gestionnaire d'accréditation n'est pas configuré dans le fichier server.xml. Il est obtenu d'après la propriété de sécurité ssl.TrustManagerFactory.algorithm du SDK.
<!-- Simple ssl configuration service object. This assumes there is a keystore object named -->
<!-- defaultKeyStore and a truststore object named defaultTrustStore in the server.xml file. -->
<ssl id="myDefaultSSLConfig"
keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore" />
<!-- A ssl configuration service object that enabled clientAuthentication -->
<!-- and specifies the TLS protocol be used. -->
<ssl id="myDefaultSSLConfig"
keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore"
clientAuthentication="true"
sslProtocol="TLS" />
<!-- An SSL configuration service object that names the serverKeyAlias -->
<!-- to be used by the handshake. This assumes there is a certificate -->
<!-- called "default" in the keystore defined by keyStoreRef. -->
<ssl id="myDefaultSSLConfig"
keyStoreRef="defaultKeyStore"
serverKeyAlias="default" />
Configuration du fichier de clés
La configuration keystore se compose des attributs requis pour le chargement d'un fichier de clés. Ces attributs peuvent être définis dans la configuration de service keyStore, dans le fichier server.xml.
Attribut | Description | Valeur par défaut |
---|---|---|
id | L'attribut id définit l'identificateur unique de l'objet keystore. | Aucune valeur par défaut (un nom unique doit être spécifié). |
location | L'attribut location spécifie le nom de fichier du fichier de clés. Sa valeur peut être composée d'un chemin absolu suivi du nom de fichier proprement dit. Si le chemin absolu n'est pas précisé, le fichier sera recherché dans le répertoire ${server.config.dir}/resources/security. | Dans la configuration minimale SSL, l'emplacement du fichier est supposé être ${server.config.dir}/resources/security/key.jks. |
type | L'attribut type spécifie le type de fichier de clés. Veillez à indiquer un type de fichier de clés pris en charge par le JDK avec lequel vous travaillez. | La valeur par défaut est jks. |
password | L'attribut password spécifie le mot de passe utilisé pour charger le fichier du fichier de clés. Le mot de passe peut être indiqué en clair ou sous forme encodée. Pour savoir comment encoder un mot de passe, consultez la description de l'option securityUtility encode. | Aucune valeur par défaut (une valeur doit être fournie explicitement). |
provider | L'attribut provider spécifie le fournisseur à utiliser pour charger le fichier de clés. Certains types de fichier de clés requièrent un fournisseur spécifique plutôt que le fournisseur SDK par défaut. | Par défaut, aucun fournisseur n'est spécifié. |
fileBased | L'attribut fileBased indique si le fichier de clés repose sur des fichiers. | La valeur par défaut est true. |
pollingRate | Fréquence à laquelle le serveur recherche les mises à jour apportées à un fichier de clés. | 500 ms. |
updateTrigger | Méthode utilisée pour déclencher le rechargement d'un fichier de clés par le serveur. Indiquez polled pour permettre au serveur de rechercher des modifications du fichier de clés, mbean pour permettre au serveur de patienter le temps qu'un mbean recharge le fichier de clés, ou disabled pour désactiver la surveillance des fichiers. | disabled. |
Les fichiers de clés peuvent être rechargés par le serveur si l'attribut updateTrigger est défini sur polled ou mbean. Si polled est activé, le serveur surveille les corrections du fichier de clés en fonction de fréquence définie dans l'attribut pollingRate. Si l'attribut updateTrigger est défini sur mbean, le serveur recharge le fichier de clés lorsqu'il reçoit une notification du bean géré WebSphere:service=com.ibm.ws.kernel.filemonitor.FileNotificationMBean. La surveillance des fichiers est désactivée par défaut.
<!-- A keystore object called defaultKeyStore provides a location, -->
<!-- type, and password. The MyKeyStoreFile.jks file is assumed -->
<!-- to be located in ${server.config.dir}/resources/security -->
<!-- This keystore is configured to be monitored every 5 seconds -->
<!-- for updates -->
<keyStore id="defaultKeyStore"
location="MyKeyStoreFile.jks"
type="JKS" password="myPassword"
pollingRate="5s"
updateTrigger="polled" />
<!-- A keystore object called defaultKeyStore provides a location, -->
<!-- type, and password. The MyKeyStoreFile.jks file is assumed -->
<!-- to be located in ${server.config.dir}/resources/security -->
<!-- This keystore is configured to be reloaded when the server -->
<!-- recieves an mbean notification to do so -->
<keyStore id="defaultKeyStore"
location="MyKeyStoreFile.jks"
type="JKS" password="myPassword"
updateTrigger="mbean" />
Exemple de configuration SSL complète
- defaultSSLSettings
- mySSLSettings
<featureManager>
<feature>ssl-1.0</feature>
</featureManager>
<!-- default SSL configuration is defaultSSLSettings ->
<sslDefault sslRef="defaultSSLSettings" />
<ssl id="defaultSSLSettings"
keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore"
clientAuthenticationSupported="true" />
<keyStore id="defaultKeyStore"
location="key.jks"
type="JKS" password="defaultPWD" />
<keyStore id="defaultTrustStore"
location="trust.jks"
type="JKS" password="defaultPWD" />
<ssl id="mySSLSettings"
keyStoreRef="myKeyStore"
trustStoreRef="myTrustStore"
clientAuthentication="true" />
<keyStore id="LDAPKeyStore"
location="${server.config.dir}/myKey.p12"
type="PKCS12"
password="{xor}CDo9Hgw=" />
<keyStore id="LDAPTrustStore"
location="${server.config.dir}/myTrust.p12"
type="PKCS12"
password="{xor}CDo9Hgw=" />