SSL with 2.0.0-RC2 recorder

I’m trying to record a session to a SSL server using recorder.sh. I would like to use curl to post to recorder’s port 8000 (rather than using firefox configured with Proxy).

What I don’t get is how to configure the SSL in the recorder UI. If I put anything other than a digit in the field “localhost HTTP/HTTPS” the field turns red and won’t let me proceed. It seems to me I should be able to put something like 8000/8043 in listening field. And Outgoing Proxy HTTP I could put 80 and Outgoing Proxy HTTPS I could put 443. Am I missing something? Why is there only one field for localhost HTTP/HTTPS ?

If I just enter port 8000 and send my HTTPS requests to that I get “curl: (52) Empty reply from server”.

Also, if I neglect to enter a port for HTTP or HTTPS in the UI, the command line will give me a “NumberFormat exception”. Which seems strange to me that I have to provide both (what if my server only uses either HTTP or HTTPS?).

Any help appreciated,
Thanks,
Tim

Hi Tim,

There was a bug in RC2 with recording ssl/https which has been fixed in the latest snapshot which can be found here:
http://gatling.io/docs/2.0.0-RC2/developing_gatling/building_gatling.html?highlight=snapshot

You’ll need that for recording https until RC3 comes out shortly.

there’s docs on it:
http://gatling.io/docs/2.0.0-RC2/quickstart.html?highlight=recorder#using-the-recorder

http://gatling.io/docs/2.0.0-RC2/http/recorder.html

there’s an open ticket to clarify previous questions on accepting the self signed certs:
https://github.com/gatling/gatling/issues/2101

Why is there only one field for localhost HTTP/HTTPS ?

Mainly because [some?] mobile devices only provide 1 port to proxy through, so if you wanted to scrape an android app for it’s api calls then it’s not possible unless the (gatling) proxy supports accepting both http and https on the same port. Agree at first sight it could look odd.

the NFE should be cleaned up agree.

Finally, the recorder is going to get some more love in v2.1+.

thanks
Alex

Hi Alex,
Thank you for the complete reply… very informative.

I downloaded the bundle from https://oss.sonatype.org/content/repositories/snapshots/io/gatling/highcharts/gatling-charts-highcharts/2.0.0-SNAPSHOT/ and installed it. I then reran recorder.sh but found the same issues as in my post. I have read the Quick Start and have been able to successfully test another app that is http only. It worked fine and I was able to look at the all the charts and what not (good stuff!). I just can’t seem to do any testing against HTTPS. Perhaps my issue is that I am attempting to use curl through the recorder, and curl is not configured to proxy (I’m not even sure how I would do that currently). I think I will next, validate that I can use recorder through SSL with the recorded calls coming through Firefox and also see if there is some magic I need to do to configure curl to proxy.

Thanks,
Tim

Could you share a reproducer, please?

Then, I don’t get why the last modified timestamps on https://oss.sonatype.org/content/repositories/snapshots/io/gatling/highcharts/gatling-charts-highcharts/2.0.0-SNAPSHOT/ are from last friday?!

OK, didn’t properly read.
You have to tell curl to use the recorder as a proxy: http://curl.haxx.se/docs/manpage.html#-x

Thanks Stephane. So I tried that, no love there either. Also tried adding the -p option. Then I reverted to just using Firefox to proxy through the recorder when it is SSL. No luck there either. I put locahost 8000 in HTTP Proxy and the same for SSL Proxy. It gives me an immediate connection reset error. Do you know what steps are needed for SSL? I’m using www.google.com for Host in the recorder.

I’m using www.google.com for Host in the recorder.

o_0 What are you doing exactly? Where did you fill a Host with www.google.com? I hope you’re not filling the outgoing proxy fields. Those are typically when you have to go through a proxy to get access to the internet.

Well… I’m embarrassed to say: yes, that is exactly what I was doing. Apparently I don’t understand proxies as well as I should. I guess I am confused by the need to configure Firefox to Proxy, and curl via --proxy. I’ve used other man in the middle type sniffers where you specify the target you are intercepting for so that incoming traffic gets routed there, e.g. ssh tunnels, ethereal, etc. I guess the difference here is that we are saying route all requests, regardless of target, through a proxy listener? Does that mean FF and Curl are sending some additional info to the proxy to tell it where to route the request? If I look at the headers in recorder the only thing I see is that Host: is set to the target server. Is that all it really is?