Al ejecutar servicios web en Liberty, el nombre de host proporcionado en el URL HTTPS se valida con el certificado predeterminado, mientras que en WebSphere Application Server tradicional no es así. Si el nombre de host no es válido, el servidor Liberty emite la excepción siguiente:
java.io.IOException: El nombre de host de URL https no coincide con el nombre común (CN) del certificado del servidor en el almacén de confianza del cliente. Asegúrese de que el certificado de servidor es correcto, o para inhabilitar esta comprobación (NO recomendado para producción) establezca la propiedad de
configuración de TLS cliente CXF
disableCNCheck
en true.
Esta diferencia de comportamiento afecta a las aplicaciones de cliente que utilizan la API de Java para XML Web Services (JAX-WS), proporcionada por el paquete javax.xml.ws. Si se especifican estas API de JAX-WS, el proyecto se marca una sola vez.
La solución recomendada es crear un certificado de servidor con el nombre de host correcto. También puede personalizar el comportamiento de validación
estableciendo la propiedad http.conduit.tlsClientParameters.disableCNCheck en clientes JAX-WS que necesitan inhabilitar la validación del nombre
de host. Esto se puede hacer añadiendo el enlace de aplicación <webservices-bnd> en el archivo server.xml y estableciendo la
propiedad cliente a cliente con el elemento <service-ref>, tal como se muestra en el ejemplo siguiente:
<enterpriseApplication id="SimpleEcho" name="SimpleEcho" location="SimpleEcho.ear">
<webservices-bnd moduleName="SimpleEcho">
<service-ref name="service/SimpleEchoService">
<port name="SimpleEchoPort">
<properties vendor="IBM"/>
</port>
<properties http.conduit.tlsClientParameters.disableCNCheck="true"/>
</service-ref>
</webservices-bnd>
</enterpriseApplication>
La validación de nombre de host también se puede inhabilitar añadiendo la propiedad al elemento <service-ref> del archivo
ibm-ws-bnd.xml tal como se muestra en el ejemplo siguiente:
<service-ref name="service/SimpleEchoService">
<port name="SimpleEchoPort">
<properties vendor="IBM"/>
</port>
<properties http.conduit.tlsClientParameters.disableCNCheck="true"/>
</service-ref>
Para obtener información detallada sobre la configuración de las configuraciones de referencias de servicios web para un cliente de servicios web en Liberty, consulte el recurso siguiente: