Problem with JMeter and HTTP Proxy Server with SSL - jmeter

We are using JMeter 2.4 and are trying to use the HTTP Proxy Server to capture a test plan.
"Attempt HTTPS spoofing" is not ticked.
The error we get in the JMeter log is:
2010/08/02 14:46:02 ERROR - jmeter.protocol.http.proxy.Proxy: Problem with SSL certificate? Ensure browser is set to accept the JMeter proxy cert:
Connection closed by remote host
2010/08/02 14:46:02 INFO - jmeter.protocol.http.sampler.HTTPSampler: Error Response Code: 404
2010/08/02 14:46:02 INFO - jmeter.protocol.http.sampler.HTTPSampler: Error Response Code: 404
2010/08/02 14:46:02 ERROR - jmeter.protocol.http.proxy.Proxy: java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(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.jmeter.protocol.http.proxy.Proxy.writeToClient(Proxy.java:443)
at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:264)
Any ideas?

You must remove in your browser the auto-signed certificat in relation with your website, and restart a record session with JMeter 2.4. In this new session, accept the JMeter's dummy cert.
(in Firefox : Options > Advanced > Encryption > View Certificates ==> Certificat Manager > Servers > choose website cert and Delete...)
Milamber

From http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Proxy_Server
When recording HTTPS, the JMeter proxy
server uses a dummy certificate to
enable it to accept the SSL connection
from the browser. This certificate is
not one of the certificates that
browsers normally trust, and will not
be for the correct host, so the
browser should display a dialogue
asking if you want to accept the
certificate or not. For example: 1)
The server's name "www.example.com"
does not match the certificate's name
"JMeter Proxy". Somebody may be trying
to eavesdrop on you. 2) The
certificate for "JMeter Proxy" is
signed by the unknown Certificate
Authority "JMeter Proxy". It is not
possible to verify that this is a
valid certificate. You will need to
accept the certificate in order to
allow the JMeter Proxy to intercept
the SSL traffic in order to record it.
You should only accept the certificate
temporarily.
Also see here http://osdir.com/ml/jmeter-dev.jakarta.apache.org/2009-08/msg00005.html

You may have to create the certificate for Jmeter. Below is a fantastic article detailing how to do it:
http://www.java-samples.com/showtutorial.php?tutorialid=210

Install Jmeter Chrome extension which records HTTPS protocol without any issue.

Related

java.net.SocketException: Software caused connection abort: recv failed **ensure browser is set to accept the JMeter proxy certificate**

I am using Jmeter 5.4.1 with Java 1_8_301 and Firefox 91.0. I have imported the ApacheJMeterTemporaryRootCA into Firefox browser and this certificate is generated today and valid.
I have set up proxy settings in my Firefox browser. This testing is done on Windows and my web application uses a client certificate which I converted through keytool into PKCS12 format and added the following to the system.properties under Jmeter-Home\bin
My web app is loading fine without proxy but when I try to record getting the below error.
java.net.SocketException: Software caused connection abort: recv failed **ensure browser is set to accept the JMeter proxy certificate**
I am not sure what I am missing here. I have been through all solutions mentioned in this regard and I am exhausted all my options now. I have been successful in recording using BlazeMeter but my company is not allowing me to use the Chrome extension for security reasons.
Note:
Also, I forgot to add that the Jmeter recording working fine before. Started noticing issues after our java
is upgraded from jdk_1.8.291 to jdk_1.8.301. I checked the difference
between the two and both support TLS1.2 which is what our app uses and tried
to downgrade to v291 didn't work either.
Log:
Problem with SSL certificate for URL for 'XXXXX'? Ensure browser is set to accept the JMeter proxy cert: java.net.SocketException: Software caused connection abort: recv failed
It's quite hard to say what's wrong without seeing your jmeter.log file with debug logging enabled for the HTTP(S) Test Script Recorder.
I can think of 2 options:
Double check the way you're importing the certificate into your browser, i.e. try recording a website with HTTPS without client certificate, i.e. https://example.com. If it fails - you will need to properly install the JMeter's certificate prior to proceeding with your application recording
If it will be successful for other HTTPS website but not for the particular your application most probably you need to import your client certificate into Firefox browser as well
As the last resort you can inspect the requests using Firefox "network" tab and generate relevant HTTP Request samplers manually. There is also BlazeMeter JMX Converter service which can transform HAR files into .JMX scripts but I think the same security restrictions will apply.

Unable to make HTTP REQUEST successfully from jmeter when on VPN

I have a test plan created for my API testing in jmeter. The HTTP requests run successfully when i disconnect from my corporate VPN, but when i am connected to VPN, the HTTP request fails - failed: Connection refused: connect - What could be causing Jmeter to work with VPN ?
The same thing happened to my tests on Postman, but the problem got resolved after enabling this option in fiddler (Rules --> Automatically Authenticate). If i close my fiddler or stop capturing, the postman requests would also start to fail (This behavior is seen both on/off vpn). - I am not sure how is Fiddler settings connected to postman.
Have anyone experienced the same ? Please guide me with some solutions to try and make these tools work properly on VPN without any fiddler changes or dependencies.
I am on Jmeter 5.2.1
As you are on corporate VPN, you need to add your corporate certificate to trust store.
Obtain the certificate first.
Add Certificate to Trust Store Command.
keytool -import -alias certificatename -keystore c:\java-se-8u40-ri\jre\lib\security\cacerts -file location to your certificate
This resolved the issue for me and was able to run jmeter on corporate vpn.
You can also refer too : How to import a jks certificate in java trust store
Hope, this helps.

Jmeter 4.0 script recording issue

When i'm trying to record application in Jmeter 4.0 using firefox browser not able to capture HTTP requests. I could see below message in
Problem with SSL certificate for url for 'cdnjs.cloudflare.com'? Ensure browser is set to accept the JMeter proxy cert: Software caused connection abort: socket write error
2018-04-20 17:26:36,369 WARN o.a.j.p.h.p.Proxy: [50777] Problem with SSL certificate for url for 'cdnjs.cloudflare.com'? Ensure browser is set to accept the JMeter proxy cert: Software caused connection abort: socket write error
Could you please help us to resolve this issue.
Even I have tried importing jmeter user certificate in browser and recorded the user scenario still complains on keystore generation.Try this if it works
http://sourceforge.net/projects/jmeterforwindows/
The error is self-explanatory: you need to add JMeter's self-signed certificate to your browser.
Locate ApacheJMeterTemporaryRootCA.crt file in "bin" folder of your JMeter installation. It is being automatically generated when you start HTTP(S) Test Script Recorder
Import the certificate into your browser, instructions are different for each browser you can use i.e. Importing your SSL certificate into your browser article as a reference.
That's it, you should now be able to record HTTPS traffic.
See Recording HTTPS Traffic with JMeter's Proxy Server for more detailed configuration and troubleshooting instructions.

Unable to login to system while recording through Jmeter

I'm unable to record login functionality every time its giving validation message on login screen with proxy on. On removing the proxy login functionality works fine. I'm using localhost with port given with the URL of the system under test.
Address is something like - 52.xxx.xxx.xxx: Portnumber
Please help..!!
It may be connected with HTTPS protocol, sending username and password in plain text is a very bad practice so I am more than sure your application is using some form of TLS encryption.
JMeter is able to decrypt and record secure traffic, however some extra configuration will be required, in particular you will need to add JMeter's self-signed certificate into browser so JMeter would be able to intercept secure traffic. Pay attention to the following chapters of the JMeter's HTTP(S) Test Script Recorder documentation:
HTTPS recording and certificates
Installing the JMeter CA certificate for HTTPS recording
If you will be still experiencing problems check out Recording HTTPS Traffic with JMeter's Proxy Server article for troubleshooting steps.

how can i install root CA certification in jmeter?

I'm getting the following error trying to install a root CA certificate in Apache JMeter:
What should I do?
This is not an error at all, it's information message regarding JMeter created a self-signed SSL certificate.
Due to security reasons JMeter prints some information regarding the certificate so you could decide whether to accept it or not when you'll open a page over HTTPS protocol in browser.
So when browser prompts you whether to proceed to secure page using untrusted certificate or not - just double check certificate authority and if it matches what JMeter tells in that dialog - you're good to go.
References:
Installing the JMeter CA certificate for HTTPS recording chapter of the HTTP(S) Test Script Recorder (was: HTTP Proxy Server ) User Manual page
Recording HTTPS Traffic with JMeter's Proxy Server

Resources