Hi Marc,
Thanks for your answer. Second possibility works fine
[useInsecureSSL]. But my question was why did not work webtest with self
signed certificate using Tomcat with APR. Maybe I didn't write, that I
have already imported certificate in "trust.keystore" and I call webtest
like:
start webtest.bat -f build.xml
-Djavax.net.ssl.trustStore=webtest/certs/trust.keystore ... and without
tomcat with APR webtest works fine.
Strange is, that the same certificate imported in keystore is
valid for "non APR" and for APR throws exception: "unable to
find valid certification path to requested target."
If WebTest can offer a config option for useInsecureSSL - YES,
please. Should I fire a JIRA?
Regards,
Roman Hesteric
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Marc Guillemot
Sent: Thursday, April 10, 2008 11:49 AM
To: [email protected]
Subject: Re: [Webtest] Tomcat APR based - problem
Hi,
if you inspect the log you'll see:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
which is typical when you use a self signed certificate in a dev
environment.
2 possibilities:
- import the certificate
- use insecure SSL (I guess it was already available in HTMLUnit 1.14):
<groovy>
step.context.webClient.useInsecureSSL = true
</groovy>
(perhaps should WebTest offer a config option for this?)
Cheers,
Marc.
--
Blog: http://mguillem.wordpress.com
Hesteric Roman - Together SK wrote:
> Hi there!
>
> I test my application based on Tomcat via SSL problem less. But
> when I try to test the same application using APR [Apache Portable
> Runtime], I cannot login in server and I get Exception. Any Ideas? Non
> SSL tests are OK regardless of using APR on Tomcat ...
>
>
> Exception:
> Unexpected exception caught: javax.net.ssl.SSLHandshakeException
> at
> com.canoo.webtest.steps.StepUtil.handleException(StepUtil.java:113)
> at com.canoo.webtest.steps.Step.handleException(Step.java:378)
> at com.canoo.webtest.steps.Step.execute(Step.java:109)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at
>
com.canoo.webtest.steps.AbstractStepContainer.executeContainedStep(Abstr
> actStepContainer.java:72)
> at
>
com.canoo.webtest.steps.AbstractStepContainer.executeContainedSteps(Abst
> ractStepContainer.java:80)
> at
> com.canoo.webtest.steps.control.IfStep.doExecute(IfStep.java:165)
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at
>
com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.jav
> a:43)
> at
>
com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:3
> 1)
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at
> com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at
>
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleChe
> ckExecutor.java:38)
> at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
> at
> org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at
>
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleChe
> ckExecutor.java:38)
> at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at
org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> at
>
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecut
> or.java:41)
> at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.Main.runBuild(Main.java:698)
> at org.apache.tools.ant.Main.startAnt(Main.java:199)
> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
> at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
> 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(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown
> Source)
> at
>
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown
> Source)
> at
> com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown
> Source)
> at
> com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
> at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown
> Source)
> at
>
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unkno
> wn Source)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
> at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown
> Source)
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
> at java.io.BufferedOutputStream.flush(Unknown Source)
> at
>
org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(Ht
> tpConnection.java:828)
> at
>
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpCon
>
nectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManag
> er.java:1565)
> at
>
org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase
> .java:2116)
> at
>
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java
> :1096)
> at
>
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMe
> thodDirector.java:398)
> at
>
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMetho
> dDirector.java:171)
> at
>
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3
> 97)
> at
>
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3
> 46)
> at
>
com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConne
> ction.java:121)
> at
>
com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection
> (WebClient.java:1500)
> at
>
com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1
> 456)
> at
> com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:355)
> at
> com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:421)
> at
>
com.canoo.webtest.steps.request.TargetHelper.getResponse(TargetHelper.ja
> va:69)
> at
>
com.canoo.webtest.steps.request.AbstractTargetAction.getResponse(Abstrac
> tTargetAction.java:66)
> at
>
com.canoo.webtest.steps.request.InvokePage.findTarget(InvokePage.java:16
> 0)
> at
>
com.canoo.webtest.steps.request.AbstractTargetAction.doExecute(AbstractT
> argetAction.java:72)
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
> ... 67 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(Unknown
Source)
> at sun.security.validator.PKIXValidator.engineValidate(Unknown
> Source)
> at sun.security.validator.Validator.validate(Unknown Source)
> at
>
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unk
> nown Source)
> at
>
com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unk
> nown Source)
> ... 95 more
> Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
> unable to find valid certification path to requested target
> at
> sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown
> Source)
> at java.security.cert.CertPathBuilder.build(Unknown Source)
> ... 100 more
> --- Nested Exception ---
> 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(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown
> Source)
> at
>
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown
> Source)
> at
> com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown
> Source)
> at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown
> Source)
> at
> com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
> at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown
> Source)
> at
>
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unkno
> wn Source)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
> at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown
> Source)
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
> at java.io.BufferedOutputStream.flush(Unknown Source)
> at
>
org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(Ht
> tpConnection.java:828)
> at
>
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpCon
>
nectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManag
> er.java:1565)
> at
>
org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase
> .java:2116)
> at
>
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java
> :1096)
> at
>
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMe
> thodDirector.java:398)
> at
>
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMetho
> dDirector.java:171)
> at
>
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3
> 97)
> at
>
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3
> 46)
> at
>
com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConne
> ction.java:121)
> at
>
com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection
> (WebClient.java:1500)
> at
>
com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1
> 456)
> at
> com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:355)
> at
> com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:421)
> at
>
com.canoo.webtest.steps.request.TargetHelper.getResponse(TargetHelper.ja
> va:69)
> at
>
com.canoo.webtest.steps.request.AbstractTargetAction.getResponse(Abstrac
> tTargetAction.java:66)
> at
>
com.canoo.webtest.steps.request.InvokePage.findTarget(InvokePage.java:16
> 0)
> at
>
com.canoo.webtest.steps.request.AbstractTargetAction.doExecute(AbstractT
> argetAction.java:72)
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at
>
com.canoo.webtest.steps.AbstractStepContainer.executeContainedStep(Abstr
> actStepContainer.java:72)
> at
>
com.canoo.webtest.steps.AbstractStepContainer.executeContainedSteps(Abst
> ractStepContainer.java:80)
> at
> com.canoo.webtest.steps.control.IfStep.doExecute(IfStep.java:165)
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at
>
com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.jav
> a:43)
> at
>
com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:3
> 1)
> at com.canoo.webtest.steps.Step.execute(Step.java:101)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at
> com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at
>
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleChe
> ckExecutor.java:38)
> at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
> at
> org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at
>
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleChe
> ckExecutor.java:38)
> at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
> at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
>
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:1
> 05)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at
org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> at
>
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecut
> or.java:41)
> at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.apache.tools.ant.Main.runBuild(Main.java:698)
> at org.apache.tools.ant.Main.startAnt(Main.java:199)
> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
> at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
> 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(Unknown
Source)
> at sun.security.validator.PKIXValidator.engineValidate(Unknown
> Source)
> at sun.security.validator.Validator.validate(Unknown Source)
> at
>
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unk
> nown Source)
> at
>
com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unk
> nown Source)
> ... 95 more
> Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
> unable to find valid certification path to requested target
> at
> sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown
> Source)
> at java.security.cert.CertPathBuilder.build(Unknown Source)
> ... 100 more
>
>
>
> Regards,
> Roman Hesteric
> _______________________________________________
> WebTest mailing list
> [email protected]
> http://lists.canoo.com/mailman/listinfo/webtest
>
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest