james-proxy / james

Web Debugging Proxy Application
1.42k stars 125 forks source link

Cool tool, just not working for me #336

Closed thesequelgroup closed 6 years ago

thesequelgroup commented 6 years ago

I was looking for a free Charles Proxy alternative and I had hopes for this one cause it looked really good, but it doesn't work well enough for me to use it. Here are my issues:

1) HTTPS doesn't work. I followed all the instructions on the wiki. HTTPS proxy is enabled in the app (as shown by the bottom right icon), but all HTTP requests lead to a connection closed error. Like Google for example: google.com unexpectedly closed the connection. Not getting this to work is a deal breaker for me.

2) There's not way to clear the request log, at least from what I can see. That would be useful.

3) Launching a proxy in IE doesn't seem to log anything. The screen doesn't change from "Launch a browser, using James as a proxy" to the log.

Anyone have any information about these points? Moving onto something else in the meantime. Thanks!

mitchhentges commented 6 years ago

Hey, which version of James did you download? Is it 1.5.0?

  1. Which browser is not working with HTTPS and James?
  2. The cross by the "Requests" text in the bottom bar allows you clear requests: out
  3. IE doesn't let us supply a proxy at launch-time - you might be able to go to your "internet options" and configure IE to use James, but I don't know how from memory :) I'll create a ticket for us to better visualize which browsers work out-of-box (#338)
thesequelgroup commented 6 years ago

Hey @mitchhentges Running Chrome Version 62.0.3202.94 (Official Build) (64-bit) Thanks for the tip on clearing the log. Didn't see that Don't really care about IE really, just want the HTTPS proxy to work. Yes I did install 1.5.0. I'm on Windows 10.

Thanks!

mitchhentges commented 6 years ago

The instructions for setting up HTTPS are very generic between platforms, so can you explain your steps to generate the certificates, how you imported them, and whether both root-ca.crt.pem and root-ca.key.pem are in %AppData%\James? Also, send me a screenshot of the bottom-left of your James window, it should look like this: https-online


I just set up James on a fresh install of Windows, here's what I did:

  1. Downloaded "OpenSSL for Windows"
  2. Extracted the downloaded zip file
  3. Opened PowerShell in the bin folder of the extracted files.
  4. .\openssl.exe genrsa -out root-ca.key.pem 2048
  5. Windows is a little funky, and running the next command as-documented in the James Wiki fails due to

    unable to load config info from /usr/local/ssl/openssl.cnf

So, I added the -config option (did you do the same thing?) so it looks like: .\openssl.exe req -x509 -new -nodes -key root-ca.key.pem -days 1024 -out root-ca.crt.pem -subj "/O=James Proxy Signing Authority" -config "$PATH_TO_EXTRACTED_ZIP\share\openssl.cnf"

  1. I moved both root-ca.crt.pem and root-ca.key.pem to %AppData%\James
  2. In Chrome:
    1. Top-right menu button (three dots)
    2. Settings
    3. "Manage certificates"
    4. In the window that pops up, "Import..."
    5. "Next"
    6. "Browse..."
    7. Go to the %AppData%\James folder
    8. Change the bottom-right filter to All Files (*.*)
    9. Select root-ca.crt.pem
    10. Finish the wizard
    11. Restart Chrome
  3. Close James (if running) and start it again
  4. Click the Chrome icon in James
  5. Requests should appear in James
mitchhentges commented 6 years ago

@thesequelgroup re-open this if the above comment didn't sufficiently help, I'll close this in the mean time.

activemkaye commented 6 years ago

Hi, same person, different account. I finally got back around to this. Still no dice. I generated the pem files in Ubuntu (vagrant) because windows was being a pain. Followed the rest of the instructions as you detailed. Proxy: HTTPS is still disabled : /

FWIW, I copied the pem files into AppData\Local\james, but I don't the location matters.

activemkaye commented 6 years ago

Ah, got it! I typed $APPDATA on the window command line and i shows that variable is AppData\Roaming. Now the proxy is enabled.

For anyone else having this problem. The directions above work but make sure you copy the pem files to AppData\Roaming\james.

mitchhentges commented 6 years ago

I'll update the docs, I must've missed the Local part in the middle. Sorry for the confusion! IIRC, when pasting in the HTTPS files, the James folder should already exist in %AppData%\Local\Roaming, which should provide a bit of a hint of where the files belong. Either way, incorrect docs, and I'll update 'em. Thanks for tracking this down activemkaye!