Hi Felix,

Please find response to your queries.

How did you add the certificate (note, that it has to include the private
key, too) into your (configured) keystore?

1. I used tool keystore Explorer to convert original client certificate (
abc.crt) to 'mycert.PKCS#12' . Further I converted mycert.PKCS#12' to .jks
as 'JMeterjks.jks' using below cmd
keytool -importkeystore -srckeystore certificate.p12 -srcstoretype PKCS12
-srcstorepass <certificate_password> -keystore <keystore_filename>
-storepass <stored_password>

2. Then I configured below lines of 'system.properties' file to input
JMeterjks.jks details

# Keystore properties (client certificates)
# Location
javax.net.ssl.keyStore=/Users/prateekdua/Downloads/crt/JMeterjks.jks'
#The password to your keystore
javax.net.ssl.keyStorePassword=^^^^^@^^^^

3. Added user defined variable *'*certi_val' bearing alias 'jmeter_certi'
as value of it under Test plan. And giving the same variable name
'certi_val' into 'Variable name holding certificate alias' of Keystore
config component of JMeter


xCan you list the entries in the keystore and show it to us?

It's basically a public key. Please find the key details.


GO-MAC-PRATEEKDUA:~ prateekdua$ keytool -list -keystore
/Users/prateekdua/Downloads/crt/JMeterjks

Enter keystore password:


Keystore type: JKS

Keystore provider: SUN


Your keystore contains 1 entry


jmeter_certi, 28 Apr, 2021, trustedCertEntry,

Certificate fingerprint (SHA1):
E8:AB:4D:7B:46:98:8E:5E:FD:36:83:C4:A9:D0:83:C3:E1:76:FD:84



Thanks,
Prateek

On Wed, Apr 28, 2021 at 6:57 PM Felix Schumacher <
felix.schumac...@internetallee.de> wrote:

>
> Am 25.04.21 um 18:27 schrieb Prateek Dua:
>
> Hi Felix,
>
> Thanks for your valuable suggestion. I did same earlier by updating to
> guava.23.0 jar and resolved this error. But now I'm getting new error while
> hitting grpc request -- good thing is that grpc based requests are getting
> created now..
>
> Response code: 500
> Response message: Exception: io.grpc.StatusRuntimeException: UNKNOWN
> Caught exception while waiting for rpc
>
> My request is unable to reach out to server handling grpc request via
> JMeter. I cross-checked it using another application *BloomRPC clien*t
> for validating grpc based requests and it's working fine through it.
>
> Is there any problem related to Client side Certificate ( .crt file needed
> to validate server & request for client) which is not getting correctly
> handled in my case via JMeter.* I did following stuff to
> use certificate using JMeter*
>
> Converted .crt based certificate to .jks and sconfigured in below paths
> with required password..
>
>  *1. system.properties file of JMeter*
>
> # Keystore properties (client certificates)
> # Location
>
> *javax.net.ssl.keyStore=/Users/prateekdua/Downloads/proto_certificate/test.jks*
> #
> #The password to your keystore
> *javax.net.ssl.keyStorePassword=^^^^^@^^^^*
> #
> #javax.net.ssl.keyStoreProvider
> #javax.net.ssl.keyStoreType [default = KeyStore.getDefaultType()]
>
> 2. Added .jks certificate as *'jssecacerts'* file under
> lib/security/jssecacerts path of installed java.
>
>
> /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/security/jssecacerts
>
> 3. Configured the same *'jssecacerts' *file path too in *s*
> *ystem.properties* file of JMeter for following lines..
>
> # Truststore properties (trusted certificates)
>
> *javax.net.ssl.trustStore=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/security/jssecacerts
> javax.net.ssl.trustStorePassword= *^^^^^@^^^^
> #javax.net.ssl.trustStoreProvider
> #javax.net.ssl.trustStoreType [default = KeyStore.getDefaultType()]
>
> But still getting above highlighted error in red..
>
> How did you add the certificate (note, that it has to include the private
> key, too) into your (configured) keystore?
>
> Can you list the entries in the keystore and show it to us?
>
> For example, when I use the keystore for RMI that can be generated by a
> shell script in the bin folder, I would use the following command and
> expect some output like
>
> $ keytool -list -keystore bin/rmi_keystore.jks
> Enter keystore password:
> Keystore type: PKCS12
> Keystore provider: SUN
>
> Your keystore contains 1 entry
>
> rmi, Jan 23, 2018, PrivateKeyEntry,
> Certificate fingerprint (SHA1):
> D7:E4:FA:61:8F:52:8D:BA:09:10:D5:4F:F1:21:C6:AA:5C:10:0D:38
>
>
> The alias of the client certifficate (Note the PrivateKeyEntry) is "rmi".
>
> If you want to use the KeyStore Configuration, that value (rmi) has to be
> put into a variable (for example "cert_name") and the string "cert_name"
> would have to placed in the KeyStore Configuration field "Variable name
> holding certificate alias". That configuration is meant to be used, if you
> have more than one alias (read key/certificate) in your keystore and want
> to change the usage of the certificate based on variables in the plan.
>
> If you have only one certificate, that might be a bit overkill.
>
> Also note, that the KeyStore Configuration is meant to be used with the
> HTTP Sampler from JMeter (especially the HTTPClient 4 implementation). Make
> sure, that it works with your sampler (by asking the third party plugin
> developer?).
>
> Regards
>
>  Felix
>
>
>
> Thanks,
> Prateek
>
> On Sat, Apr 24, 2021 at 4:40 PM Felix Schumacher <
> felix.schumac...@internetallee.de> wrote:
>
>> Am 20.04.21 um 09:34 schrieb Prateek Dua:
>>
>> Hi Team,
>>
>> Need your help here in sorting this out problem related to hitting grpc
>> based requests where I'm receiving below error...
>>
>> 2021-04-19 14:07:41,552 ERROR o.a.j.JMeter: Uncaught exception:
>> *java.lang.NoSuchMethodError:
>> com.google.common.net.HostAndPort.getHost()Ljava/lang/String;*
>> at
>> vn.zalopay.benchmark.core.grpc.ChannelFactory.createChannelBuilder(ChannelFactory.java:34)
>> ~[jmeter-grpc-request-1.1.2.jar:?]
>>
>>
>> This is a third party plugin, so you should try to get help by the
>> authors of that plugin.
>>
>> That said. If you google for "java.lang.NoSuchMethodError:
>> com.google.common.net.HostAndPort.getHost()Ljava/lang/String",you
>> probably would have found links similar to the bug report
>> https://github.com/lightbody/browsermob-proxy/issues/398. The plugin
>> seems to depend on a newer version of guava, than is available in your
>> classpath.
>>
>> I would try to locate a jar named guava*.jar in lib/** and update it to a
>> newer one. Beware, I haven't used that plugin and haven't tried the
>> solution.
>>
>> Felix
>>
>>
>> Please find attached my test plan and error details..
>>
>> Screenshots uploaded to https://imgur.com/a/toJHQNR
>>
>> [image: Screenshot 2021-04-19 at 2.26.04 PM.png]
>>
>> *Following steps I've done for setting up grpc based requests for my
>> JMeter 4.0*
>>
>> 1. Added jar file  'jmeter-grpc-request-1.1.2.jar' under ext/lib folder.
>> Got this jar file from 
>> *https://github.com/zalopay-oss/jmeter-grpc-request/tree/master/dist/bin
>> <https://github.com/zalopay-oss/jmeter-grpc-request/tree/master/dist/bin>. *
>>
>> 2*.  *grpc-client-1.2.0.jar , grpc-protobuf-1.1.2.jar
>> , grpc-stub-1.1.2.jar are the pred added grpc jar files present
>> under ext/lib folder.
>>
>> 3. There is extra client side certificate *"**abc.crt"* shared by client
>> that is needed for authenticating current grpc requests. So I converted it
>> to *.jks *using below *keytool *command..
>>
>> *keytool -*import -alias alias -file
>> /Users/prateekdua/Downloads/abc.crt  -keypass keypass -keystore
>> yourkeystore.jks -storepass sub
>>
>> 4. And I've stored converted *.jks *certificate inside bin folder of
>> JMeter.
>>
>> 5. Configured *system.properties* file of JMeter for following lines
>>
>> # Keystore properties (client certificates)
>> # Location
>>
>> javax.net.ssl.keyStore=/Users/prateekdua/Downloads/apache-jmeter-4.0/bin/aws-ecs-mmt.jks
>>
>> #The password to your keystore
>> javax.net.ssl.keyStorePassword=mypassword
>>
>>
>> Thanks,
>> Prateek
>>
>>
>>
>>
>>
>
>

-- 
Thanks,
Prateek Dua

Reply via email to