![[17.0.0.3 and later]](../ng_v17003plus.gif)
Filtros de salida para configuraciones SSL
Puede configurar Liberty para que se puedan utilizar varias configuraciones SSL para conexiones de salida a un host o un host y puertos utilizando filtros SSL de salida.
De forma predeterminada, Liberty utiliza la configuración SSL predeterminada para conexiones SSL de entrada y salida. Los usuarios también pueden configurar Liberty para que tenga un valor predeterminado de salida global que le permita configurar una configuración SSL para el valor predeterminado de salida. Si desea más información sobre cómo configurar los valores SSL para comunicaciones de salida, consulte Configuración de valores SSL para las comunicaciones de salida.
Los filtros SSL de salida están configurados en el elemento outboundConnection que está anidado en el elemento ssl. Puedce especificar un host o un host y un puerto que indica dónde va la conexión SSL de salida utilizando el elemento outboundConnection.
Atributos del elemento OutboundConnection
Atributo | Descripción | Valor predeterminado |
---|---|---|
host | El host a donde se dirige la conexión de salida. | No hay ningún valor predeterminado, pero es necesario que el usuario proporcione un nombre de host. |
port | El puerto a donde se dirige la conexión de salida. | No hay valor predeterminado. Si el atributo del puerto no está configurado, el filtro coincide con el nombre de host que se dirige a algún puerto en el servidor de destino. |
clientCertificate | La conexión SSL de salida utiliza este alias de certificado si la conexión se va a dirigir a un servidor que soporta o requiere la autenticación de certificado de cliente. | No hay valor predeterminado. Si falta el atributo y la conexión requiere la autenticación de certificado de cliente, JSSE (Java Secure Socket Extension) selecciona el certificado que se envía al servidor. |
- Un nombre de host, un nombre abreviado o un nombre de host completo. Sea cual sea el que se utilice, debe ser una coincidencia exacta con lo que se utiliza para la conexión de salida. Si la conexión de salida está utilizando el nombre abreviado de host, el filtro solo coincide en el nombre abreviado.
- Se puede utilizar un * (asterisco) para el atributo de host. Si se utiliza el valor * (asterisco) y no se especifica ningún puerto, esto se aplica para todas las conexiones de salida. Si se especifica el valor predeterminado de salida global con el atributo outboundSSLRef, en el elemento sslDefault, entonces hay un conflicto. El atributo outboundSSLRef tiene prioridad.
- La serie de host debe empezar con *. para coincidir con un nombre de dominio. Si se especifica el valor * en cualquier otra ubicación de la serie, se trata como un literal *. La conexión de salida se debe realizar con un nombre de host completo para el dominio con el que coincidirá.
El puerto debe ser una coincidencia exacta con el puerto que se utiliza para la conexión de salida. Si no se ha especificado ningún puerto, cualquier puerto del host especificado coincide con el filtro.
El atributo clientCertificate es opcional. Se utiliza si el servidor al que se dirige la conexión SSL de salida solicita un certificado de cliente. Si el servidor no solicita un certificado, no se utiliza. Si el servidor solicita un certificado y no se especifica ninguno, la conexión consulta el atributo clientKeyAlias que está especificado en el elemento ssl padre. Si no está configurado ninguno de los atributos, JSSE elige el certificado para utilizar para la conexión.
Prioridad SSL de salida
- Referencia directa
- Si una característica solicita directamente una configuración SSL para utilizar, se utiliza dicha configuración.
- Coincidente con un filtro outboundConnection
- Si no se solicita ninguna referencia directa, hay un intento de hacer coincidir la llamada de salida con el filtro del elemento outboundConnection.
- Configuración SSL predeterminada de salida
- Si no coincide ningún filtro SSL de salida, se utiliza la configuración SSL que se especifica en el atributo outboundSSLRef.
- Configuración predeterminada de SSL
- Si no está configurado ningún valor predeterminado de salida, se utiliza la configuración SSL predeterminada. La configuración SSL predeterminada es la configuración defaultSSLConfig o lo que se haya especificado en el atributo sslRef en el elemento sslDefault.
Conflictos en los filtros de salida
Si existe un conflicto entre los filtros, se escribe un mensaje en los registros que indica qué configuración SSL se utiliza. Esta situación se puede producir, por ejemplo, si más de un elemento outboundConnection utiliza el mismo host y puerto.
Si se especifica el atributo outboundSSLRef y existe un filtro que utiliza el valor de host de * sin ningún puerto especificado, se utiliza la configuración que se especifica mediante el atributo outboundSSLRef.
Ejemplos de configuración
<featureManager>
<feature>transportSecurity-1.0</feature>
</featureManager>
- Ejemplo 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" />
En esta configuración, la configuración SSL que se llama alternateSSLSettings se utiliza cuando las conexiones SSL de salida van al host server99.ibm.com del servidor y al puerto 9443. Todas las demás conexiones SSL de salida utilizan la configuración SSL predeterminada de defaultSSLConfig.
- Ejemplo 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" />
En esta configuración, las conexiones SSL de salida que van a cualquier puerto del host otherhost utilizan la configuración SSL que se llama defaultSSLConfig. Las conexiones de salida que van al host server99.ibm.com y el puerto 9443 o 8020 utilizan la configuración SSL llamada alternateSSLSettings. Todas las demás conexiones SSL de salida utilizan la configuración SSL predeterminada de salida que se especifica mediante el atributo outboundSSLRef llamado outboundSSLSettings.
- Ejemplo 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" />
En esta configuración, las conexiones SSL de salida utilizan la configuración SSL predeterminada que se llama defaultSSLConfig. Si la conexión SSL de salida va al host server99.ibm.com y solicita un certificado de cliente, se utiliza el certificado que se llama special. Todas las demás conexiones de salida que solicitan un certificado de cliente utilizan el certificado que se llama default.