From f3369529abd601d7f10fcdb45ec280e8f6a7ad19 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 28 Jan 2014 13:24:11 +1300 Subject: [PATCH] Adjust docs for web app certificate installation. --- doc-src/_nav.html | 1 + doc-src/certinstall/android.html | 43 +++++++++++++++++------------- doc-src/certinstall/firefox.html | 12 +++++++-- doc-src/certinstall/index.py | 1 + doc-src/certinstall/ios.html | 16 +++++++---- doc-src/certinstall/webapp.html | 10 +++++++ doc-src/certinstall/webapp.png | Bin 0 -> 61683 bytes doc-src/certinstall/windows7.html | 7 +++-- doc-src/ssl.html | 24 ++++++++++------- 9 files changed, 76 insertions(+), 38 deletions(-) create mode 100644 doc-src/certinstall/webapp.html create mode 100644 doc-src/certinstall/webapp.png diff --git a/doc-src/_nav.html b/doc-src/_nav.html index 6dfbaba57..5460601ff 100644 --- a/doc-src/_nav.html +++ b/doc-src/_nav.html @@ -22,6 +22,7 @@ $!nav("ssl.html", this, state)!$ + $!nav("certinstall/webapp.html", this, state)!$ $!nav("certinstall/android.html", this, state)!$ $!nav("certinstall/firefox.html", this, state)!$ $!nav("certinstall/ios.html", this, state)!$ diff --git a/doc-src/certinstall/android.html b/doc-src/certinstall/android.html index bb0165f73..73fc4d8b5 100644 --- a/doc-src/certinstall/android.html +++ b/doc-src/certinstall/android.html @@ -7,27 +7,26 @@ necessity, and many apps merrily ignore it even if it's there. This situation is improving, but in many circumstances using [transparent mode](@!urlTo("transparent.html")!@) is mandatory for testing Android apps. -We used both an Asus Transformer Prime TF201 (Android 4.0.3) and a Nexus 4 -(Android 4.4.4) in the examples below - your device may differ, -but the broad process should be similar. -On **emulated devices**, -there are some [additional quirks](https://github.com/mitmproxy/mitmproxy/issues/204#issuecomment-32837093) to consider. +We used both an Asus Transformer Prime TF201 (Android 4.0.3) and a Nexus 4 +(Android 4.4.4) in the examples below - your device may differ, but the broad +process should be similar. On **emulated devices**, there are some [additional +quirks](https://github.com/mitmproxy/mitmproxy/issues/204#issuecomment-32837093) +to consider. ## Getting the certificate onto the device -First we need to get the __mitmproxy-ca-cert.cer__ file into the -__/sdcard__ folder on the device (/sdcard/Download on older devices). There are a number of ways to do -this. If you have the Android Developer Tools installed, you can use [__adb -push__](http://developer.android.com/tools/help/adb.html) to accomplish this. -Depending on your device, you could also transfer the file using external media -like an SD Card. In this example, we're using wget from within a terminal -emulator to transfer the certificate from a local HTTP server: +The easiest way to get the certificate to the device is to use [the web +app](@!urlTo("webapp.html")!@). In the rare cases where the web app doesn't +work, you will need to get the __mitmproxy-ca-cert.cer__ file into the +__/sdcard__ folder on the device (/sdcard/Download on older devices). This can +be accomplished in a number of ways: - - - -## Installing the certificate +- If you have the Android Developer Tools installed, you can use [__adb +push__](http://developer.android.com/tools/help/adb.html). +- Using a file transfer program like wget (installed on the Android device) to +copy the file over. +- Transfer the file using external media like an SD Card. Once we have the certificate on the local disk, we need to import it into the list of trusted CAs. Go to Settings -> Security -> Credential Storage, @@ -37,12 +36,18 @@ and select "Install from storage": The certificate in /sdcard is automatically located and offered for installation. Installing the cert will delete the download file from the local -disk: +disk. + + +## Installing the certificate + +You should now see something like this (you may have to explicitly name the +certificate): -Afterwards, you should see the certificate listed in the Trusted Credentials -store: +Click OK, and you should then see the certificate listed in the Trusted +Credentials store: diff --git a/doc-src/certinstall/firefox.html b/doc-src/certinstall/firefox.html index 66fa9d797..2652f5c6b 100644 --- a/doc-src/certinstall/firefox.html +++ b/doc-src/certinstall/firefox.html @@ -1,5 +1,8 @@ +## Get the certificate to the browser + +The easiest way to get the certificate to the browser is to use [the web +app](@!urlTo("webapp.html")!@). If this fails, do the following: -How to install the __mitmproxy__ certificate authority in Firefox:
  1. If needed, copy the ~/.mitmproxy/mitmproxy-ca-cert.pem file to the target.
  2. @@ -12,12 +15,17 @@ How to install the __mitmproxy__ certificate authority in Firefox: +
+ + +## Installing the certificate + +
  1. Tick "Trust this CS to identify web sites", and click "Ok":
  2. You should now see the mitmproxy certificate listed in the Authorities tab.
  3. -
diff --git a/doc-src/certinstall/index.py b/doc-src/certinstall/index.py index ebdc730f2..329274016 100644 --- a/doc-src/certinstall/index.py +++ b/doc-src/certinstall/index.py @@ -1,6 +1,7 @@ from countershape import Page pages = [ + Page("webapp.html", "Using the Web App"), Page("firefox.html", "Firefox"), Page("osx.html", "OSX"), Page("windows7.html", "Windows 7"), diff --git a/doc-src/certinstall/ios.html b/doc-src/certinstall/ios.html index fd14e65aa..c12d65f69 100644 --- a/doc-src/certinstall/ios.html +++ b/doc-src/certinstall/ios.html @@ -1,11 +1,17 @@ -How to install the __mitmproxy__ certificate authority on IOS devices: +## Getting the certificate onto the device + +The easiest way to get the certificate to the device is to use [the web +app](@!urlTo("webapp.html")!@). In the rare cases where the web app doesn't +work, you will need to get the __mitmproxy-ca-cert.pem__ file to the device to +install it. The easiest way to accomplish this is to set up the Mail app on the +device, and to email it over as an attachment. Open the email, tap on the +attachment, then proceed with the install. + + +## Installing the certificate
    -
  1. Set up the Mail app on the device to receive email.
  2. - -
  3. Mail the mitmproxy-ca-cert.pem file to the device, and tap on the attachment.
  4. -
  5. You will be prompted to install a profile. Click "Install":
  6. diff --git a/doc-src/certinstall/webapp.html b/doc-src/certinstall/webapp.html new file mode 100644 index 000000000..6cb9ef226 --- /dev/null +++ b/doc-src/certinstall/webapp.html @@ -0,0 +1,10 @@ + +By far the easiest way to install the mitmproxy certs is to use the built-in +web app. To do this, start mitmproxy and configure your target device with the +correct proxy settings. Now start a browser on the device, and visit the magic +domain **mitm.it**. You should see something like this: + + + +Just click on the relevant icon, and then follow the setup instructions +for the platform you're on. diff --git a/doc-src/certinstall/webapp.png b/doc-src/certinstall/webapp.png new file mode 100644 index 0000000000000000000000000000000000000000..10e795cdc775dc037581434e2cc1de152b919005 GIT binary patch literal 61683 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 -
  7. Copy the ~/.mitmproxy/mitmproxy-ca-cert.p12 file to the target system.
  8. +
  9. The easiest way to get the certificate to the device is to use the web app. If this fails for some + reason, simply copy the ~/.mitmproxy/mitmproxy-ca-cert.p12 file to the + target system and double-click it.
  10. - Double-click the certificate file. You should see a certificate import wizard: + You should see a certificate import wizard:
  11. diff --git a/doc-src/ssl.html b/doc-src/ssl.html index c904cf617..91225d793 100644 --- a/doc-src/ssl.html +++ b/doc-src/ssl.html @@ -1,7 +1,20 @@ The first time __mitmproxy__ or __mitmdump__ is run, a set of certificate files for the mitmproxy Certificate Authority are created in the config directory -(~/.mitmproxy by default). The files are as follows: +(~/.mitmproxy by default). This CA is used for on-the-fly generation of dummy +certificates for SSL interception. Since your browser won't trust the +__mitmproxy__ CA out of the box (and rightly so), you will see an SSL cert +warning every time you visit a new SSL domain through __mitmproxy__. When +you're testing a single site through a browser, just accepting the bogus SSL +cert manually is not too much trouble, but there are a many circumstances where +you will want to configure your testing system or browser to trust the +__mitmproxy__ CA as a signing root authority. + + +CA and cert files +----------------- + +The files created by mitmproxy in the .mitmproxy directory are as follows: @@ -24,15 +37,6 @@ for the mitmproxy Certificate Authority are created in the config directory
    -This CA is used for on-the-fly generation of dummy certificates for SSL -interception. Since your browser won't trust the __mitmproxy__ CA out of the -box (and rightly so), you will see an SSL cert warning every time you visit a -new SSL domain through __mitmproxy__. When you're testing a single site through -a browser, just accepting the bogus SSL cert manually is not too much trouble, -but there are a many circumstances where you will want to configure your -testing system or browser to trust the __mitmproxy__ CA as a signing root -authority. - Using a custom certificate --------------------------