Lors de l'exécution des services Web sur le serveur Liberty, le nom d'hôte de l'URL HTTPS est validé avec le certificat par défaut, ce qui n'est pas le cas sur le serveur WebSphere Application Server Traditional. Si le nom d'hôte n'est pas valide, le serveur Liberty génère l'exception suivante :
java.io.IOException: Le nom d'hôte de l'URL https ne correspond pas au nom usuel
(CN) sur le certificat serveur dans le fichier de clés certifiées du client. Assurez-vous que le certificat serveur est correct ou désélectionnez cette case à
cocher (DECONSEILLE dans un environnement de production) pour associer la propriété de
configuration TLS du client CXF
disableCNCheck
à la valeur 'true'.
Cette différence de comportement a une incidence sur les applications client qui utilisent l'API Java pour services Web XML (JAX-WS), fournie par le package javax.xml.ws. Si les API JAX-WS sont référencées, le projet est marqué une fois.
La solution recommandée consiste à créer un certificat serveur avec le nom
d'hôte correct. Vous pouvez aussi personnaliser le comportement de
validation en
définissant la propriété http.conduit.tlsClientParameters.disableCNCheck sur
les clients JAX-WS requérant la désactivation du nom d'hôte. Pour ce faire, ajoutez la
liaison d'applications <webservices-bnd> dans le fichier
server.xml et définissez la propriété pour chaque client avec l'élément
<service-ref>, conformément à l'exemple suivant :
<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>
Vous pouvez aussi désactiver la validation de nom d'hôte en ajoutant la propriété à
l'élément <service-ref> dans le fichier ibm-ws-bnd.xml,
conformément à l'exemple suivant :
<service-ref name="service/SimpleEchoService">
<port name="SimpleEchoPort">
<properties vendor="IBM"/>
</port>
<properties http.conduit.tlsClientParameters.disableCNCheck="true"/>
</service-ref>
Pour plus d'informations sur la configuration des configurations de référence de services Web pour un client de services Web dans Liberty, consultez la ressource suivante :