[17.0.0.3 and later]

Filtres sortants pour configurations SSL

Vous pouvez configurer Liberty pour pouvoir utiliser plusieurs configurations SSL pour les connexions sortantes vers un hôte ou vers un hôte et un port à l'aide des filtres SSL sortants.

Par défaut, Liberty utilise la configuration SSL par défaut à la fois pour les connexions SSL entrantes et sortantes. Les utilisateurs peuvent également configurer Liberty pour avoir une valeur par défaut sortante globale qui vous permette de configurer une seule configuration SSL pour la valeur sortante par défaut. Pour en savoir plus sur la configuration des paramètres SSL pour les communications sortantes, voir Configuration des paramètres SSL pour les communications sortantes.

Les filtres SSL sortants sont configurés sur l'élément outboundConnection qui est imbriqué dans l'élément ssl. Vous pouvez spécifier un hôte ou bien un hôte et un port indiquant où va la connexion SSL sortante à l'aide de l'élément outboundConnection.

Attributs d'élément OutboundConnection

Tableau 1. Attributs, descriptions et valeurs par défaut
Attribut Description Valeur par défaut
host Hôte sur lequel va la connexion sortante. Aucune valeur par défaut, mais l'utilisateur est invité à fournir un nom d'hôte.
port Port sur lequel va la connexion sortante. Aucune valeur par défaut. Si l'attribut port n'est pas configuré, le filtre choisit le nom d'hôte qui va sur n'importe quel port sur le serveur de destination.
clientCertificate La connexion SSL sortante utilise cet alias de certificat si la connexion va sur un serveur qui prend en charge ou nécessite une authentification par certificat client. Aucune valeur par défaut. Si l'attribut est manquant et la connexion nécessite une authentification par certificat client, Java Secure Socket Extension (JSSE) prélève le certificat qui est envoyé au serveur.
Définissez l'attribut hôte de l'une des manières suivantes :
  1. Un nom d'hôte, un nom abrégé ou un nom d'hôte complet. Le nom utilisé doit correspondre exactement au nom utilisé pour la connexion sortante. Si la connexion sortante utilise le nom abrégé de l'hôte, le filtre base uniquement ses correspondances sur le nom abrégé.
  2. Un astérisque (*) peut être utilisé pour l'attribut d'hôte. Si la valeur astérisque (*)est utilisée et aucun port n'est spécifié, toutes les connexions sortantes sont prises en compte. Si la configuration par défaut sortante globale est spécifiée avec l'attribut outboundSSLRef, sur l'élément sslDefault, un conflit se produit. L'attribut outboundSSLRef est prioritaire.
  3. La chaîne de l'hôte doit commencer par un *. pour correspondre à un nom de domaine. Si la valeur * est spécifiée à un autre endroit dans la chaîne, elle est traitée comme un * littéral. La connexion sortante doit être faite avec un nom d'hôte complet pour que le domaine corresponde.

Le port doit être une correspondance exacte du port utilisé pour la connexion sortante. Si aucun port n'est spécifié, tous les ports présents sur l'hôte spécifié correspondent au filtre.

L'attribut clientCertificate est facultatif. Il est utilisé si le serveur sur lequel va la connexion SSL sortante demande un certificat client. Si le serveur n'exige pas de certificat, il n'est pas utilisé. Si le serveur demande un certificat et aucun certificat n'est spécifié, la connexion se tourne sur l'attribut clientKeyAlias qui est spécifié sur l'élément ssl parent. Si aucun des attributs n'est configuré, JSSE choisit le certificat à utiliser pour la connexion.

Priorité de la configuration SSL sortante

La priorité de correspondance des configurations SSL sortantes est la suivante :
  1. Référence directe
    Si une fonction demande directement l'utilisation d'une configuration SSL, cette configuration est utilisée.
  2. Correspondance d'un filtre outboundConnection
    Si aucune référence directe n'est requise, une tentative est faite de faire correspondre l'appel sortant au filtre de l'élément outboundConnection.
  3. Configuration SSL sortante par défaut
    Si aucun filtre SSL sortant ne correspond, la configuration SSL spécifiée sur l'attribut outboundSSLRef est utilisée.
  4. Configuration SSL par défaut
    Si aucune valeur sortante par défaut n'est configurée, la configuration SSL par défaut est utilisée. La configuration SSL par défaut est soit la configuration defaultSSLConfig, soit ce qui est spécifié sur l'attribut sslRef sur l'élément sslDefault.

Conflits dans les filtres sortants

Si des conflits existent entre les filtres, un message est écrit dans les journaux, indiquant quelle configuration SSL est utilisée. Cette situation peut se produire, par exemple, si plusieurs éléments outboundConnection utilisent le même hôte et le même port.

Si l'attribut outboundSSLRef est spécifié et un filtre utilise la valeur d'hôte * sans aucun port spécifié, la configuration spécifiée par l'attribut outboundSSLRef est utilisée.

Exemples de configuration

Pour utiliser l'élément outboundConnection, vous devez spécifier la fonction transportSecurity-1.0 dans la configuration. Si vous ne spécifiez pas la fonction transportSecurity-1.0, l'élément outboundConnection est ignoré.
<featureManager>
    <feature>transportSecurity-1.0</feature>
</featureManager>
Exemple 1.
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" />
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password=”yourpassword” />
<keyStore id="DefaultTrustStore" location="trust.jks" type="JKS" password="yourpassword" />

<ssl id="alternateSSLSettings" keyStoreRef="alternateKeyStore" trustStoreRef="alternateTrustStore" >
	<outboundConnection host=”server99.ibm.com” port=”9443” />
</ssl>
	<keyStore id="alternateKeyStore" location="${server.config.dir}/alternateServerKeyFile.jks" type="JKS" password="yourpassword" />
	<keyStore id="alternateTrustStore" location="${server.config.dir}/alternateServerTrustFile.jks" type="JKS" password="yourpassword" />

Dans cette configuration, la configuration SSL appelée alternateSSLSettings est utilisée lorsque les connexions SSL sortantes vont à l'hôte server99.ibm.com du serveur et au port 9443. Toutes les autres connexions SSL sortantes utilisent la configuration SSL par défaut defaultSSLConfig.

Exemple 2.
<sslDefault outboundSSLRef=”outboundSSLSettings” />
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" >
	<outboundConnection host=”otherhost”  />
</ssl>
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password=”yourpassword” />
<keyStore id="DefaultTrustStore" location="trust.jks" type="JKS" password="yourpassword" />

<ssl id="alternateSSLSettings" keyStoreRef="alternateKeyStore" trustStoreRef="alternateTrustStore" >
	<outboundConnection host=”server99.ibm.com” port=”8020” />
	<outboundConnection host=”server99.ibm.com” port=”9443” />
</ssl>

	<keyStore id="alternateKeyStore" location="${server.config.dir}/alternateServerKeyFile.jks" type="JKS" password="yourpassword" />
	<keyStore id="alternateTrustStore" location="${server.config.dir}/alternateServerTrustFile.jks" type="JKS" password="yourpassword" />

<ssl id="outboundSSLSettings" keyStoreRef="outboundKeyStore" trustStoreRef="outboundTrustStore" >
</ssl>
	<keyStore id="outboundKeyStore" location="${server.config.dir}/outboundKeyFile.jks" password="yourpassword" />
	<keyStore id="outboundTrustStore" location="${server.config.dir}/outboundTrustFile.jks" password="yourpassword" />

Dans cette configuration, les connexions SSL sortantes qui vont sur n'importe quel port sur l'hôte otherhost utilisent la configuration SSL appelée defaultSSLConfig. Les connexions sortantes qui vont à l'hôte server99.ibm.com et au port 9443 ou 8020 utilisent la configuration SSL appelée alternateSSLSettings. Toutes les autres connexions SSL sortantes utilisent la configuration SSL par défaut sortante spécifiée par l'attribut outboundSSLRef appelée outboundSSLSettings.

Exemple 3.
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" clientKeyAlias=”default” >
	<outboundConnection host=”server99.ibm.com” port=”9443” clientCertificate=”special” />
</ssl>

<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password=”yourpassword” />
<keyStore id="DefaultTrustStore" location="trust.jks" type="JKS" password="yourpassword" />

Dans cette configuration, les connexions SSL sortantes utilisent la configuration SSL par défaut appelée defaultSSLConfig. Si la connexion SSL sortante va à l'hôte server99.ibm.com et demande un certificat client, le certificat appelé special est utilisé. Toutes les autres connexions sortantes qui demandent un certificat client utilisent le certificat appelé default.


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

Nom du fichier : rwlp_ssl_outbound_filter.html