You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by George <ba...@yahoo.de> on 2014/12/10 12:28:21 UTC

KeyStore Configuration loops for every http sampler?

Hello,
it seems that the Keystore Configuration loops through the index for every http sampler request?I have put jmeter into "debug" mode and also debug "ssl, keymanager". I see everything clear in the logger panel.
So i have a Keystore (.jks) with 3 certs. cert1, cert2, cert3. 
My keystore configuration says "start: 0, end:2" preload: false".Then i have
---> Thread running 1 rampup 1 and just run 1------>Cookie Manager
-------->Simple controler------------->Http Sampler targeting my server on via https and do a simple GET------------->Http Sampler targeting the same server via https doing a GET/path/blah


When i run my test then i see this for the first http sampler:jmeter.protocol.http.sampler.HTTPHC4Impl: Created new HttpClient: @instance_idjmeter.util.SSLManager: Total of 3 aliases loaded OK from keystore
Perfect so far. Then i see:jmeter.util.JsseSSLManager: Using threadLocal SSL context for :thread1 1-1jmeter.util.JsseManager: Client alias:'cert1'
So far good.Then the http sampler request is made and i see the response and i see that i get a cookie back. 
Perfect.But now i see:jmeter.util.JsseSSLManager: Clearing session context for current thread

And then i see that the next http sampler is triggered to be executed i see:jmeter.protocol.http.sampler.HTTPHC4Impl: Created new HttpClient: @instance_id_for_next_sampler
And i also see again:jmeter.util.JsseSSLManager: Using threadLocal SSL context for :thread1 1-1
And now i see:jmeter.util.JsseManager: Client alias:'cert2'

WHY that?I mean i have one thread with 2 http sampler request.I don't want that jmeter "loops" through my certs [0-2] for every http sampler.I want to have 1 thread with 10 http samplers targeting the same server via https and i want that all sent "cert1".
But now i see clearly that the ssl session context will be opend and closed for every http sampler.This mean that for first http sampler jmeter use cert from position [0] from my keystore configuration and for the next http request it use postion [1].?
BrGeorge





Re: KeyStore Configuration loops for every http sampler?

Posted by George <ba...@yahoo.de>.
Hello,
got it.I have to set the property "https.use.cached.ssl.context=true"Doing so i get a warning message in my logger panel that i have to set this value to "false" to use multiple client certs but i ignore it.So for me if i set this value to "true" everything works like a charm.If i set this value to "false" then for EVERY http sampler jmeter use the next cert from keystore.
So if i set it to "true" i see this:jmeter.protocol.http.sampler.HTTPHC4Impl: Reusing the HttpClient: @id..... 
And the id is the same as for the first HttpClient.Thus if i have 10 http samplers the first one will be created with the [0] cert and all other 9 http samplers will simple "reuse" the httpclient and of course reuse the [0] cert or better say the ssl handshake is done only once (at the first request).

 

     George <ba...@yahoo.de> schrieb am 12:32 Mittwoch, 10.Dezember 2014:
   

 Hello,
it seems that the Keystore Configuration loops through the index for every http sampler request?I have put jmeter into "debug" mode and also debug "ssl, keymanager". I see everything clear in the logger panel.
So i have a Keystore (.jks) with 3 certs. cert1, cert2, cert3. 
My keystore configuration says "start: 0, end:2" preload: false".Then i have
---> Thread running 1 rampup 1 and just run 1------>Cookie Manager
-------->Simple controler------------->Http Sampler targeting my server on via https and do a simple GET------------->Http Sampler targeting the same server via https doing a GET/path/blah


When i run my test then i see this for the first http sampler:jmeter.protocol.http.sampler.HTTPHC4Impl: Created new HttpClient: @instance_idjmeter.util.SSLManager: Total of 3 aliases loaded OK from keystore
Perfect so far. Then i see:jmeter.util.JsseSSLManager: Using threadLocal SSL context for :thread1 1-1jmeter.util.JsseManager: Client alias:'cert1'
So far good.Then the http sampler request is made and i see the response and i see that i get a cookie back. 
Perfect.But now i see:jmeter.util.JsseSSLManager: Clearing session context for current thread

And then i see that the next http sampler is triggered to be executed i see:jmeter.protocol.http.sampler.HTTPHC4Impl: Created new HttpClient: @instance_id_for_next_sampler
And i also see again:jmeter.util.JsseSSLManager: Using threadLocal SSL context for :thread1 1-1
And now i see:jmeter.util.JsseManager: Client alias:'cert2'

WHY that?I mean i have one thread with 2 http sampler request.I don't want that jmeter "loops" through my certs [0-2] for every http sampler.I want to have 1 thread with 10 http samplers targeting the same server via https and i want that all sent "cert1".
But now i see clearly that the ssl session context will be opend and closed for every http sampler.This mean that for first http sampler jmeter use cert from position [0] from my keystore configuration and for the next http request it use postion [1].?
BrGeorge