Quando si eseguono i servizi web in Liberty, il nome host fornito nell'URL HTTPS viene convalidato con il certificato per impostazione predefinita, mentre in WebSphere Application Server traditional ciò non accade. Se il nome host non è valido, il server Liberty genera la seguente eccezione:
java.io.IOException: Il nome host dell'URL https non corrisponde
al CN (Common Name) nel certificato del server nel truststore del client. Accertarsi che il certificato del server sia corretto oppure, per disabilitare
questa verifica (NON consigliato per la produzione) impostare la proprietà di configurazione TLS del client CXF
disableCNCheck
su true.
Questa differenza di funzionamento interessa le applicazioni client che utilizzano l'API Java per JAX-WS (XML Web Services),
fornita dal package javax.xml.ws.. Se esistono riferimenti all'API WS JAX-WS, il progetto viene contrassegnato una volta.
La soluzione consigliata è quella di creare un certificato del server con il nome host corretto. In alternativa, è possibile personalizzare
il funzionamento della convalida impostando la proprietà http.conduit.tlsClientParameters.disableCNCheck sui client JAX-WS che
richiedono la disabilitazione della convalida del nome host. È possibile eseguire questa operazione aggiungendo il bind dell'applicazione <webservices-bnd>
nel file server.xml ed impostando la proprietà in base al client con l'elemento <service-ref>
come illustrato nel seguente esempio:
<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>
È possibile disabilitare la convalida del nome host anche aggiungendo la proprietà all'elemento <service-ref> del file ibm-ws-bnd.xml
come illustrato nel seguente esempio:
<service-ref name="service/SimpleEchoService">
<port name="SimpleEchoPort">
<properties vendor="IBM"/>
</port>
<properties http.conduit.tlsClientParameters.disableCNCheck="true"/>
</service-ref>
Per informazioni dettagliate relative alla configurazione delle configurazioni di riferimento dei servizi web per un client di servizi web in Liberty, fare riferimento alla seguente risorsa: