Thursday, August 11, 2016

[Error]Host name verification failed for host


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 :)