aboutsummaryrefslogtreecommitdiffstats
path: root/doc-src/certinstall/ssl.html
diff options
context:
space:
mode:
authorJim Shaver <dcypherd@gmail.com>2015-04-07 01:33:45 -0400
committerJim Shaver <dcypherd@gmail.com>2015-04-07 01:33:45 -0400
commit6c6639a78aed12a7c19e692c873606ee9bc46852 (patch)
tree64421b8faf224046ea97112eb51f1600f0057f52 /doc-src/certinstall/ssl.html
parent998c9c49c44969b0e5421c649cfb714e5f578dda (diff)
downloadmitmproxy-6c6639a78aed12a7c19e692c873606ee9bc46852.tar.gz
mitmproxy-6c6639a78aed12a7c19e692c873606ee9bc46852.tar.bz2
mitmproxy-6c6639a78aed12a7c19e692c873606ee9bc46852.zip
Cleaned up wrapping and added links to external CA instructions.
Diffstat (limited to 'doc-src/certinstall/ssl.html')
-rw-r--r--doc-src/certinstall/ssl.html76
1 files changed, 36 insertions, 40 deletions
diff --git a/doc-src/certinstall/ssl.html b/doc-src/certinstall/ssl.html
index 8b2b8ed7..8d27f0ef 100644
--- a/doc-src/certinstall/ssl.html
+++ b/doc-src/certinstall/ssl.html
@@ -1,39 +1,44 @@
-SSL traffic poses a potential problem when using mitmproxy, as it is encrypted, it is opaque to inspection.
-In order to be able to decrypt the traffic, you must use a certificate that the client, whose traffic you are intercepting, trusts.
-This document outlines the different options you have for either using the certificate that mitmproxy generates or using your own.
+SSL traffic poses a potential problem when using mitmproxy, as it is encrypted, it is opaque to inspection. In order to be able to decrypt the traffic, you must use a certificate that the client, whose traffic you are intercepting, trusts. This document outlines the different options you have for either using the certificate that mitmproxy generates or using your own.
Quick Setup
-----------
-By far the easiest way to install the mitmproxy certificates 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 domain **mitm.it**.
+By far the easiest way to install the mitmproxy certificates 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 domain **mitm.it**.
You should see something like this:
<img src="@!urlTo("webapp.png")!@"></img>
-Just click on the relevant icon, and then follow the setup instructions
-for the platform you're on.
+Just click on the relevant icon, and then follow the setup instructions for the platform you're on.
-Certificates are installed via several different methods depending on the client.
-There are too many to go into in this document, consult the documentation for
-the client that you would to have trust the mitmproxy root certificate,
-for specific installation instructions.
+Certificates are installed via several different methods depending on the client. There are too many to go into in this document, consult the documentation for the client that you would to have trust the mitmproxy root certificate, for specific installation instructions.
+Installing the mitmproxy CA Certificate Manually
+------------------------------------------------
+
+Most of the time you can easily install mitmproxy's CA certificate through the webapp, and just follow the prompts. In a couple of situations, such as Java or the iOS Simulator, there aren't any obvious ways to install the CA certificate.
+<table class="table">
+ <tr>
+ <td><a href="https://github.com/ADVTOOLS/ADVTrustStore#how-to-use-advtruststore"</a>iOS Simulator</td>
+ <td><a href="http://docs.oracle.com/cd/E19906-01/820-4916/geygn/index.html">Java</a></td>
+ </tr>
+ <tr>
+ <td><a href="http://windows.microsoft.com/en-ca/windows/import-export-certificates-private-keys#1TC=windows-7">Windows</a></td>
+ <td><a href="https://support.apple.com/kb/PH7297?locale=en_US">Mac OS X</a></td>
+ </tr>
+ <tr>
+ <td><a href="http://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate/94861#94861">Ubuntu/Debian</a></td>
+ <td><a href="https://wiki.mozilla.org/MozillaRootCertificate#Mozilla_Firefox">Firefox</a></td>
+ </tr>
+ <tr>
+ <td><a href="http://kb.mit.edu/confluence/pages/viewpage.action?pageId=152600377">iOS</a></td>
+ <td><a href="http://wiki.cacert.org/FAQ/ImportRootCert#Android_Phones_.26_Tablets">Android/Android Simulator</a></td>
+ </tr>
+</table>
More On mitmproxy Certificates
------------------------------
-The first time __mitmproxy__ or __mitmdump__ is run, the mitmproxy Certificate
-Authority(CA) is created in the config directory (~/.mitmproxy by default).
-This CA is used for on-the-fly generation of dummy certificates for each of the
-SSL sites that your client visits. Since your browser won't trust the
-__mitmproxy__ CA out of the box , you will see an SSL certificate
-warning every time you visit a new SSL domain through __mitmproxy__. When
-you are 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.
+The first time __mitmproxy__ or __mitmdump__ is run, the mitmproxy Certificate Authority(CA) is created in the config directory (~/.mitmproxy by default). This CA is used for on-the-fly generation of dummy certificates for each of the SSL sites that your client visits. Since your browser won't trust the __mitmproxy__ CA out of the box , you will see an SSL certificate warning every time you visit a new SSL domain through __mitmproxy__. When you are 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
@@ -66,12 +71,9 @@ The files created by mitmproxy in the .mitmproxy directory are as follows:
Using a custom certificate
--------------------------
-You can use your own certificate by passing the <kbd>--cert</kbd> option to mitmproxy. mitmproxy then uses the provided
-certificate for interception of the specified domains instead of generating a certificate signed by its own CA.
+You can use your own certificate by passing the <kbd>--cert</kbd> option to mitmproxy. mitmproxy then uses the provided certificate for interception of the specified domains instead of generating a certificate signed by its own CA.
-The certificate file is expected to be in the PEM format.
-You can include intermediary certificates right below your leaf certificate, so that you PEM file roughly looks like
-this:
+The certificate file is expected to be in the PEM format. You can include intermediary certificates right below your leaf certificate, so that you PEM file roughly looks like this:
<pre>
-----BEGIN PRIVATE KEY-----
@@ -88,26 +90,20 @@ this:
For example, you can generate a certificate in this format using these instructions:
<pre class="terminal">
-> openssl genrsa -out cert.key 2048
-> openssl req -new -x509 -key cert.key -out cert.crt
+$ openssl genrsa -out cert.key 2048
+$ openssl req -new -x509 -key cert.key -out cert.crt
(Specify the mitm domain as Common Name, e.g. *.google.com)
-> cat cert.key cert.crt > cert.pem
-> mitmproxy --cert=cert.pem
+$ cat cert.key cert.crt > cert.pem
+$ mitmproxy --cert=cert.pem
</pre>
Using a client side certificate
------------------------------------
-You can use a client certificate by passing the <kbd>--client-certs DIRECTORY</kbd> option to mitmproxy.
-If you visit example.org, mitmproxy looks for a file named example.org.pem in the specified directory
-and uses this as the client cert. The certificate file needs to be in the PEM format and should contain
-both the unencrypted private key as well as the certificate.
+You can use a client certificate by passing the <kbd>--client-certs DIRECTORY</kbd> option to mitmproxy. If you visit example.org, mitmproxy looks for a file named example.org.pem in the specified directory and uses this as the client cert. The certificate file needs to be in the PEM format and should contain both the unencrypted private key as well as the certificate.
Using a custom certificate authority
------------------------------------
-By default, mitmproxy will (generate and) use <samp>~/.mitmproxy/mitmproxy-ca.pem</samp> as the default certificate
-authority to generate certificates for all domains for which no custom certificate is provided (see above).
-You can use your own certificate authority by passing the <kbd>--confdir</kbd> option to mitmproxy.
-mitmproxy will then look for <samp>mitmproxy-ca.pem</samp> in the specified directory. If no such file exists,
-it will be generated automatically.
+By default, mitmproxy will (generate and) use <samp>~/.mitmproxy/mitmproxy-ca.pem</samp> as the default certificate authority to generate certificates for all domains for which no custom certificate is provided (see above). You can use your own certificate authority by passing the <kbd>--confdir</kbd> option to mitmproxy. mitmproxy will then look for <samp>mitmproxy-ca.pem</samp> in the specified directory. If no such file exists, it will be generated automatically.
+