Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: How to use mockttp with Electron exes? #104

Open
oswinkil-git opened this issue Sep 26, 2022 · 6 comments
Open

Question: How to use mockttp with Electron exes? #104

oswinkil-git opened this issue Sep 26, 2022 · 6 comments

Comments

@oswinkil-git
Copy link

How would I go about using this example to intercept HTTPS requests from an Electron exe?

@pimterry
Copy link
Member

Hi @oswinbk, it depends on the Electron app. Somehow you need to configure the app to use your proxy settings and trust your CA certificate. For some apps, you can do that by trusting the CA certificate and configuring your proxy globally on your machine. For other apps, you might need to configure these settings inside the app itself, or to manually inject these settings in more complicated ways e.g. as HTTP Toolkit does here: https://github.com/httptoolkit/httptoolkit-server/blob/main/src/interceptors/electron.ts.

@oswinkil-git
Copy link
Author

Hi @oswinbk, it depends on the Electron app. Somehow you need to configure the app to use your proxy settings and trust your CA certificate. For some apps, you can do that by trusting the CA certificate and configuring your proxy globally on your machine. For other apps, you might need to configure these settings inside the app itself, or to manually inject these settings in more complicated ways e.g. as HTTP Toolkit does here: https://github.com/httptoolkit/httptoolkit-server/blob/main/src/interceptors/electron.ts.

So is it possible to emulate what httptoolkit does with electron apps into a mockttp program?

@pimterry
Copy link
Member

HTTP Toolkit is a Mockttp program - it's an app built on top of Mockttp. Anything you can do with HTTP Toolkit can be done with Mockttp too, and all the code to do so is already open source.

That doesn't mean it's easy, and I'm afraid I can't help you write it in detail, I just don't have time, but the code linked above is literally the code HTTP Toolkit runs to do this, so you should be able to build on that to achieve this.

@oswinkil-git
Copy link
Author

Thank you for the answer!

@oswinkil-git
Copy link
Author

Hi, I wanted to get some clarification on how https://github.com/httptoolkit/httptoolkit-server/blob/main/src/interceptors/terminal/fresh-terminal-interceptor.ts works. Does it just spawn a child process with its own environment, where the CA it uses is generated from mockttp?

@pimterry
Copy link
Member

pimterry commented Oct 5, 2022

Yes, exactly. All it's doing is launching a process with extra env vars, as set in getTerminalEnvVars. Some of those env vars do reference & inject extra files, e.g. the Java agent JAR, or the JS hook scripts, which all live in /overrides: https://github.com/httptoolkit/httptoolkit-server/tree/main/overrides

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants