Environment: Integration scenario of WSO2 ESB with WSO2 IS
JDK 1.8
Precondition: IS is in remote server
IS and ESB should be up and running
ESB contain proxy which is going to call IS endpoint
Situation: Invoke ESB proxy service.
Error:
[2016-08-12 10:46:32,329] ERROR - TargetHandler I/O error: Host name verification failed for host : ***.**.**.*
javax.net.ssl.SSLException: Host name verification failed for host : ***.**.**.*
at org.apache.synapse.transport.http.conn.ClientSSLSetupHandler.verify(ClientSSLSetupHandler.java:162)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:291)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:391)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
at java.lang.Thread.run(Thread.java:745)
Solution:
Disable Host verification via ESB
- Navigate to axis2.xml ($ESB_HOME/repository/conf/axis2/axis2.xml)
- Uncomment following and add relevant value;
<!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>-->
<!--supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
In here it will allow all hosts;
<parameter name="HostnameVerifier">AllowAll</parameter>
Restart ESB to apply changes :)