On Wed, Aug 16, 2017 at 9:48 PM, Nuwandi Wickramasinghe <nuwan...@wso2.com> wrote:
> Hi all, > > With the latest IS pack built with kernel 4.4.17-SNAPSHOT, we can > successfully turn off the hostname verification with > *-Dhttpclient.hostnameVerifier=AllowAll*. > What was the original issue? Farasath has followed the same steps (IS with 4.4.17-SNAPSHOT) and mentioned that the above property was not working according to the mail above. > Need to do some code changes from Identity Server side to make the newly > introduced property effective for some components. > What are the code changes? This property is only used in httpclient coming from kernel. So why changes are required at IS side? > Since no improvement is needed from kernel side, can we please go ahead > with the kernel 4.4.17 release? > > *-Dhttpclient.hostnameVerifier *is only applicable since 4.4.17, but our > documentation says it's applicable from 4.4.10 ([1]). Better to fix the > documentation as well. Reopened [2] since the doc need to be corrected. > > [1] https://docs.wso2.com/display/ADMIN44x/Enabling+HostName+Verification > [2] https://wso2.org/jira/browse/DOCUMENTATION-4071 > > thanks > Nuwandi > > On Wed, Aug 16, 2017 at 5:39 PM, Farasath Ahamed <farasa...@wso2.com> > wrote: > >> >> >> >> On Tue, Aug 15, 2017 at 8:22 PM, Farasath Ahamed <farasa...@wso2.com> >> wrote: >> >>> Tested with Kernel 4.4.16, -Dhttpclient.hostnameVerifier=AllowAll >>> parameter is honoured and worked fine. >>> >> >> I had an offline discussion with Chandana and Thusitha and go to know >> that *-Dhttpclient.hostnameVerifier=AllowAll* is not supported in kernel >> as of now (upto 4.4.16) and will be supported in 4.4.17. Therefore my >> earlier conclusion saying that kernel 4.4.16 parameter is honoured is >> incorrect. But our documentation says that we support this from 4.4.11 >> which need to be corrected immediately :) >> >> But going throught the startup script we do have a parameter >> *-Dorg.wso2.ignoreHostnameVerification=true* in kernel 4.4.16. Did a >> quick search and this parameter was used in Kernel 4.4.6 to disable >> hostname verification. Therefore I think that is how I was able to get my >> scenario working with a hostname without changing certs (ie. turn off >> hostname verification). >> >> But even though we have the necessary fixes to support >> *-Dhttpclient.hostnameVerifier=AllowAll >> *in kernel 4.4.17 with commons-httpclient_3.1.0.wso2v6 orbit it doesn't >> seem to honour the *-Dhttpclient.hostnameVerifier *parameter. >> >> I did a quick debug with commons-httpclient_3.1.0.wso2v6 and the method >> to verify hostname[1] was never hit :( >> >> >> [1] https://github.com/wso2/wso2-commons-httpclient/blob/v3. >> 1.0-wso2v6/commons-httpclient/src/main/java/org/apache/ >> commons/httpclient/protocol/SSLProtocolSocketFactory.java#L286 >> >> >>> >>> Farasath Ahamed >>> Software Engineer, WSO2 Inc.; http://wso2.com >>> Mobile: +94777603866 >>> Blog: blog.farazath.com >>> Twitter: @farazath619 <https://twitter.com/farazath619> >>> <http://wso2.com/signature> >>> >>> >>> >>> On Tue, Aug 15, 2017 at 7:58 PM, Harsha Thirimanna <hars...@wso2.com> >>> wrote: >>> >>>> >>>> >>>> On 15 Aug 2017 7:43 pm, "Farasath Ahamed" <farasa...@wso2.com> wrote: >>>> >>>> Tried to do $subject following [1] on a IS 5.4.0-SNAPSHOT pack with >>>> kernel 4.4.17-SNAPSHOT. I still see hostname validation errors after >>>> running the server with, >>>> -Dhttpclient.hostnameVerifier=AllowAll >>>> >>>> >>>> You don't get this error with the IS pack with kernal 4.4.16 ? Could >>>> you please check that Farasath ? >>>> Then we can isolate this. >>>> >>>> >>>> >>>> [2017-08-15 19:36:52,561] ERROR >>>> {org.apache.catalina.core.StandardWrapperValve} >>>> - Servlet.service() for servlet [default] in context with path >>>> [/authenticationendpoint] threw exception >>>> java.io.IOException: javax.net.ssl.SSLHandshakeException: >>>> java.security.cert.CertificateException: No name matching idp.wso2.com >>>> found >>>> at org.apache.jasper.servlet.JspServletWrapper.service(JspServl >>>> etWrapper.java:467) >>>> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl >>>> et.java:395) >>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>>> lter(ApplicationFilterChain.java:303) >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>>> licationFilterChain.java:208) >>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >>>> r.java:52) >>>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>>> lter(ApplicationFilterChain.java:241) >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>>> licationFilterChain.java:208) >>>> at org.apache.catalina.core.ApplicationDispatcher.invoke(Applic >>>> ationDispatcher.java:743) >>>> at org.apache.catalina.core.ApplicationDispatcher.processReques >>>> t(ApplicationDispatcher.java:485) >>>> at org.apache.catalina.core.ApplicationDispatcher.doForward(App >>>> licationDispatcher.java:410) >>>> at org.apache.catalina.core.ApplicationDispatcher.forward(Appli >>>> cationDispatcher.java:337) >>>> at org.wso2.carbon.identity.application.authentication.endpoint >>>> .util.filter.AuthenticationEndpointFilter.doFilter(Authentic >>>> ationEndpointFilter.java:161) >>>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>>> lter(ApplicationFilterChain.java:241) >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>>> licationFilterChain.java:208) >>>> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilte >>>> r(HttpHeaderSecurityFilter.java:124) >>>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>>> lter(ApplicationFilterChain.java:241) >>>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>>> licationFilterChain.java:208) >>>> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >>>> dWrapperValve.java:218) >>>> at org.apache.catalina.core.StandardContextValve.invoke(Standar >>>> dContextValve.java:110) >>>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >>>> uthenticatorBase.java:506) >>>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >>>> stValve.java:169) >>>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >>>> rtValve.java:103) >>>> at org.wso2.carbon.identity.context.rewrite.valve.TenantContext >>>> RewriteValve.invoke(TenantContextRewriteValve.java:80) >>>> at org.wso2.carbon.identity.authz.valve.AuthorizationValve.invo >>>> ke(AuthorizationValve.java:91) >>>> at org.wso2.carbon.identity.auth.valve.AuthenticationValve.invo >>>> ke(AuthenticationValve.java:60) >>>> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInv >>>> ocation(CompositeValve.java:99) >>>> at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke >>>> (CarbonTomcatValve.java:47) >>>> at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(Tena >>>> ntLazyLoaderValve.java:57) >>>> at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invok >>>> eValves(TomcatValveContainer.java:47) >>>> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(Comp >>>> ositeValve.java:62) >>>> at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetection >>>> Valve.invoke(CarbonStuckThreadDetectionValve.java:159) >>>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa >>>> lve.java:962) >>>> at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve. >>>> invoke(CarbonContextCreatorValve.java:57) >>>> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >>>> EngineValve.java:116) >>>> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >>>> apter.java:445) >>>> at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs >>>> tractHttp11Processor.java:1115) >>>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler >>>> .process(AbstractProtocol.java:637) >>>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun >>>> (NioEndpoint.java:1770) >>>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(N >>>> ioEndpoint.java:1729) >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>>> Executor.java:1142) >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>>> lExecutor.java:617) >>>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.r >>>> un(TaskThread.java:61) >>>> at java.lang.Thread.run(Thread.java:748) >>>> Caused by: javax.net.ssl.SSLHandshakeException: >>>> java.security.cert.CertificateException: No name matching idp.wso2.com >>>> found >>>> at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) >>>> at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) >>>> at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) >>>> at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) >>>> at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHa >>>> ndshaker.java:1514) >>>> at sun.security.ssl.ClientHandshaker.processMessage(ClientHands >>>> haker.java:216) >>>> at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) >>>> at sun.security.ssl.Handshaker.process_record(Handshaker.java:961) >>>> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) >>>> at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSo >>>> cketImpl.java:1375) >>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl. >>>> java:1403) >>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl. >>>> java:1387) >>>> at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli >>>> ent.java:559) >>>> at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio >>>> n.connect(AbstractDelegateHttpsURLConnection.java:185) >>>> at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Ht >>>> tpsURLConnectionImpl.java:153) >>>> at org.apache.jsp.login_jsp._jspService(login_jsp.java:777) >>>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>>> at org.apache.jasper.servlet.JspServletWrapper.service(JspServl >>>> etWrapper.java:439) >>>> ... 44 more >>>> Caused by: java.security.cert.CertificateException: No name matching >>>> idp.wso2.com found >>>> at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:221) >>>> at sun.security.util.HostnameChecker.match(HostnameChecker.java:95) >>>> at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509Trus >>>> tManagerImpl.java:455) >>>> at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509Trus >>>> tManagerImpl.java:436) >>>> at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509Trust >>>> ManagerImpl.java:200) >>>> at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X50 >>>> 9TrustManagerImpl.java:124) >>>> at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHa >>>> ndshaker.java:1496) >>>> ... 58 more >>>> >>>> >>>> Is the information in [1] still valid? >>>> >>>> Chandana pointed out there has been a http client version upgrade in >>>> Kernel 4.4.17. Could this be a reason for this? >>>> >>>> >>>> [1] https://docs.wso2.com/display/ADMIN44x/Enabling+HostName >>>> +Verification >>>> >>>> >>>> Thanks, >>>> Farasath Ahamed >>>> Software Engineer, WSO2 Inc.; http://wso2.com >>>> Mobile: +94777603866 >>>> Blog: blog.farazath.com >>>> Twitter: @farazath619 <https://twitter.com/farazath619> >>>> <http://wso2.com/signature> >>>> >>>> >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>>> >>> >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > > Best Regards, > > Nuwandi Wickramasinghe > > Software Engineer > > WSO2 Inc. > > Web : http://wso2.com > > Mobile : 0719214873 > -- *Kishanthan Thangarajah* Technical Lead, Platform Technologies Team, WSO2, Inc. lean.enterprise.middleware Mobile - +94773426635 Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>* Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev