Când sunt rulate servicii web pe Liberty, numele de gazdă dat în URL-ul HTTPS este validat cu certificatul în mod implicit, în timp ce în WebSphere Application Server tradiţional nu se face aceasta. Dacă numele de gazdă nu este valid, serverul Liberty aruncă următoarea excepţie:
java.io.IOException: The https URL hostname does not match
the Common Name (CN) on the server certificate in the client's truststore. Asiguraţi-vă că certificatul de server este corect sau pentru a dezactiva
această verificare (NU este recomandat pentru producţie) setaţi proprietatea de
configuraţie TLS client CXF
disableCNCheck
to true.
Această diferenţă de comportament afectează aplicaţiile client care utilizează Java API for XML Web Services (JAX-WS), care este
furnizat de pachetul javax.xml.ws. Dacă sunt referite API-urile JAX-WS, proiectul este semnalat o dată.
Soluţia recomandată este de a crea un certificat de server cu numele de gazdă corect. Alternativ, puteţi personaliza comportamentul de validare prin setarea
proprietăţii http.propite.tlsClientParameters.disableCNCheck pe
clienţii JAX-WS care necesită dezactivarea validării numelui de gazdă. Acest
lucru poate fi făcut prin adăugarea legării de aplicaţie
<webservices-bnd> în fişierul server.xml şi
setarea proprietăţii pe o bază per client cu elementul
<service-ref>, aşa cum se vede în următorul exemplu:
<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>
Validarea numelui de gazdă poate fi de asemenea dezactivată prin adăugarea
proprietăţii la elementul <service-ref> din fişierul
ibm-ws-bnd.xml aşa cum se vede în următorul exemplu:
<service-ref name="service/SimpleEchoService">
<port name="SimpleEchoPort">
<properties vendor="IBM"/>
</port>
<properties http.conduit.tlsClientParameters.disableCNCheck="true"/>
</service-ref>
Pentru informaţii detaliate despre realizarea configuraţiilor de referinţă de servicii web pentru un client de servicii web pe Liberty, vedeţi următoarele resurse: