Author Message
HuseyinAksu2
Joined: Dec 26, 2013
Messages: 99
Offline
Hi DevConnect Team,

While I am trying to call a https webservice, the following error occurs. I know that we have to add the regarding certificates inside keystore but Tomcat Admin does not know the keystore password. And he says he could able to create a new keystore password but that means all the certificates inside in keystore have to be updated as well. Is there any alternative way like creating certificates at runtime dynamically or etc ? Your suggestion is very appreciated.

"Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

DD Version: 5.0.0.1603
Tomcat Version: 6


*** Full StackTrace ***
16/04/2018 13:52:50 INFO - 24A33B59631A230F6DD729409708952E:/DASK : Using SCESession 24A33B59631A230F6DD729409708952E:/DASK servlet : inquiryDamageInfo-Begin
16/04/2018 13:52:50 INFO - 24A33B59631A230F6DD729409708952E:/DASK : Using SCESession 24A33B59631A230F6DD729409708952E:/DASK servlet : inquiryDamageInfo-wsInquiryDamageInfo
16/04/2018 13:52:50 DEBUG - 24A33B59631A230F6DD729409708952E:/DASK : Collecting [connectivity.ws.beans.inquiryDamageInfo.DT_HasarSorgu_req@2aa529d7] from:wsInquiryDamageInfoInput
16/04/2018 13:52:50 DEBUG - 24A33B59631A230F6DD729409708952E:/DASK : Calling Web Service [SI_IVRService] at [https://sap.dask.gov.tr:8036] operation [HasarSorgu]
16/04/2018 13:52:50 DEBUG - 24A33B59631A230F6DD729409708952E:/DASK : Setting web service timeout to 15 seconds
16/04/2018 13:52:50 INFO - 24A33B59631A230F6DD729409708952E:/DASK : Capturing exception [java.lang.reflect.InvocationTargetException]. Message [null]
16/04/2018 13:52:50 DEBUG - 24A33B59631A230F6DD729409708952E:/DASK : session id:ocmankvp1-2018106105142-16 | DASK:inquiryDamageInfo-wsInquiryDamageInfo | EXCEPTION : | ddLastException:stacktrace : java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.avaya.sce.runtime.connectivity.ws.CallService.execute(CallService.java:425)
at com.avaya.sce.runtime.Data.evaluateActions(Data.java:108)
at flow.subflow.inquiryDamageInfo.wsInquiryDamageInfo.executeDataActions(wsInquiryDamageInfo.java:122)
at com.avaya.sce.runtime.Data.handleRequest(Data.java:77)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:76)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:249)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:167)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1118)
at com.avaya.sce.runtime.BasicServlet.handleRequest(BasicServlet.java:116)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:76)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:249)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:167)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1118)
at com.avaya.sce.runtime.Subflow.handleRequest(Subflow.java:35)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:76)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:249)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:167)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1118)
at com.avaya.sce.runtime.SubflowReturn.handleRequest(SubflowReturn.java:42)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:76)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:249)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:167)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at connectivity.ws.beans.inquiryDamageInfo.SI_IVRBindingStub.hasarSorgu(SI_IVRBindingStub.java:314)
... 66 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1035)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
... 76 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:294)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:200)
at sun.security.validator.Validator.validate(Validator.java:218)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1014)
... 87 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:289)
... 93 more
WilsonYu
Joined: Nov 6, 2013
Messages: 3950
Offline
If you are accessing some web services, you should be able to get the certificate from web service provider. If you have the certificate, all you need to do is importing the certificates into a new keystore. To use the existing keystore, you have to somehow recover the password. I don't know of any way around it. Creating self-sign certificate dynamically will not solve your problem. However, the exception you are showing is not necessary a password problem. It could mean the certificate is missing or the keystore is not found.
Go to:   
Mobile view