Hi guys,
since 5 hours I`m trying to make a simple GET request against the remote
host via SSL protocol.
Certainly my jmeter.properties file is correct configured:
javax.net.ssl.trustStore=F:/java/jre1.5.0_02/lib/security/cacerts , password
is also correct.
I`ve tried with imported pem certificate to the truststore, tried with p12
and pem imported via SSLManager in JMETER console and always
receive the same exception :

<sampleResult timeStamp="1144846598835" dataType="text" threadName="Thread
Group 1-1" label="HTTP Request HTTPClient" time="16" responseMessage="Non
HTTP respon
se message" responseCode="Non HTTP response code" success="false"><property
xml:space="preserve" name="samplerData">GET
https://heinzdcon.de.icw.int:443/index.h
tml
</property><binary>javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.Sun
CertPathBuilderException: unable to find valid certification path to
requested target&#13;
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java
:150)&#13;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(
SSLSocketImpl.java:1476)&#13;
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java
:174)&#13;
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java
:168)&#13;
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(
ClientHandshaker.java:847)&#13;
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(
ClientHandshaker.java:106)&#13;
        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(
Handshaker.java:495)&#13;
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(
Handshaker.java:433)&#13;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(
SSLSocketImpl.java:815)&#13;
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(
SSLSocketImpl.java:1025)&#13;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(
SSLSocketImpl.java:619)&#13;
        at com.sun.net.ssl.internal.ssl.AppOutputStream.write(
AppOutputStream.java:59)&#13;
        at
org.apache.commons.httpclient.HttpConnection$WrappedOutputStream.write(
HttpConnection.java:1368)&#13;
        at java.io.BufferedOutputStream.flushBuffer(
BufferedOutputStream.java:65)&#13;
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java
:123)&#13;
        at
org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(
HttpConnection.java:799)&#13;
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(
HttpMethodBase.java:2277)&#13;
        at org.apache.commons.httpclient.HttpMethodBase.processRequest(
HttpMethodBase.java:2657)&#13;
        at org.apache.commons.httpclient.HttpMethodBase.execute(
HttpMethodBase.java:1093)&#13;
        at org.apache.jmeter.protocol.http.sampler.HTTPSampler2.sample(
HTTPSampler2.java:436)&#13;
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(
HTTPSamplerBase.java:514)&#13;
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(
HTTPSamplerBase.java:503)&#13;
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java
:247)&#13;
        at java.lang.Thread.run(Thread.java:595)&#13;
Caused by: sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable
to find vali
d certification path to requested target&#13;
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java
:221)&#13;
        at sun.security.validator.PKIXValidator.engineValidate(
PKIXValidator.java:145)&#13;
        at sun.security.validator.Validator.validate(Validator.java
:203)&#13;
        at
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(
X509TrustManagerImpl.java:172)&#13;
        at
com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(
SSLContextImpl.java:320)&#13;
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(
ClientHandshaker.java:840)&#13;
        ... 19 more&#13;
Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target&#13;
        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(
SunCertPathBuilder.java:236)&#13;
        at java.security.cert.CertPathBuilder.build(CertPathBuilder.java
:194)&#13;
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java
:216)&#13;
        ... 24 more&#13;
</binary></sampleResult>
</testResults>



P.S.
Here is the working Test.java that tests the SSL connection. It has the same
parameters as jmeter.properties, provided via console:

import java.security.Security;
import java.net.*;

public class Test {
    private static String webserverurl =
            "https://heinzdcon/lifesensor/login/login.jsp";
            +
"?language=de&amp;logintype=de&amp;role=consumer&amp;country=de";

    public static void main(String args[]) throws Exception {

        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        System.setProperty(
                "java.protocol.handler.pkgs",
                "com.sun.net.ssl.internal.www.protocol");

        System.setProperty("javax.net.ssl.trustStore", args[0]);
        System.setProperty("javax.net.ssl.trustStorePassword", args[1]);

        System.out.println("-- truststore: " +
                System.getProperty("javax.net.ssl.trustStore"));

        System.setProperty("javax.net.ssl.keyStore", args[0]);
        System.setProperty("javax.net.ssl.keyStorePassword", args[1]);

        System.out.println("-- keystore: " +
                System.getProperty("javax.net.ssl.trustStore"));

        System.setProperty("javax.net.debug",
                "ssl,handshake,data,trustmanager");

        //  System.setProperty("keystore.type", "JCEKS");


      URL url = new URL(webserverurl);
      HttpURLConnection conn = (HttpURLConnection)url.openConnection();
      conn.getResponseCode();

      System.out.println("\n========== OK =================");
    }
}


Anybody has experience with SSL, according to the version (2.1.1) I have no
doubt that this core functionality works.

Regards,
Yefym.

Reply via email to