В Liberty имя хоста веб-службы, указанное в URL HTTPS, по умолчанию проверяется по сертификату, тогда как в WebSphere Application Server traditional нет. Если имя хоста недопустимое, на сервере Liberty возникает следующая исключительная ситуация:
java.io.IOException: имя хоста URL HTTPS не соответствует общему имени сертификата сервера в хранилище доверенных сертификатов клиента. Убедитесь, что сертификат сервера правильный, или выключите данную проверку (не
рекомендуется в рабочей среде), указав в свойстве конфигурации TLS клиента CXF
disableCNCheck
значение true.
Это отличие в поведении влияет на приложения-клиенты, использующие JAX-WS из пакета javax.xml.ws. Если есть ссылки на API JAX-WS, то проект помечается один раз.
Рекомендуемое решение - создать сертификат сервера с правильным именем хоста. Также можно настроить функцию
проверки, указав свойство http.conduit.tlsClientParameters.disableCNCheck на клиентах JAX-WS, для которых необходимо выключить проверку хоста. Это можно сделать путем добавления привязки
приложения <webservices-bnd> в файл server.xml и настройки свойства
индивидуально для каждого клиента с помощью элемента <service-ref> (см. следующий пример).
<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>
Проверку хоста также можно выключить, добавив свойство в элемент <service-ref> файла ibm-ws-bnd.xml (см. следующий пример).
<service-ref name="service/SimpleEchoService">
<port name="SimpleEchoPort">
<properties vendor="IBM"/>
</port>
<properties http.conduit.tlsClientParameters.disableCNCheck="true"/>
</service-ref>
Дополнительную информацию о настройке конфигураций ссылок на веб-службы для клиентов веб-служб в Liberty можно найти в следующем источнике: