Go to file
Aldo Cortesi fe1e2f16ff Improve responsiveness of request and response viewing.
- Computing the view of a large body is expensive, so we introduce an LRU cache
to hold the latest 20 results.

- Use ListView more correctly, passing it individual urwid.Text snippets,
rather than a single large one. This hugely improves render time.
2011-03-15 13:05:33 +13:00
doc-src Stub out doc tutes. 2011-03-15 10:08:48 +13:00
examples First pass of script hooks for mitmdump. 2011-02-18 12:40:45 +13:00
libmproxy Improve responsiveness of request and response viewing. 2011-03-15 13:05:33 +13:00
test Improve responsiveness of request and response viewing. 2011-03-15 13:05:33 +13:00
.gitignore Simple record & playback functionality 2011-02-10 02:59:51 +01:00
CHANGELOG Release mitmproxy 0.2 2010-03-01 17:25:27 +13:00
LICENSE Initial checkin. 2010-02-16 17:09:07 +13:00
MANIFEST.in Initial checkin. 2010-02-16 17:09:07 +13:00
mitmdump Unify mitmproxy and mitmdump commandline 2011-03-12 14:30:12 +13:00
mitmproxy Fix a number of small UI infelicities. 2011-03-13 21:16:42 +13:00
README.mkd Make README reflect reality. 2011-02-21 12:11:41 +13:00
setup.py Fix setup.py 2011-02-21 12:04:24 +13:00
todo Add -c and -C options to mitmdump to control sticky cookies. 2011-02-25 17:32:03 +13:00

mitmproxy is an interactive SSL-capable intercepting HTTP proxy. It lets you to observe, modify and replay requests and responses on the fly. The underlying library that mitmproxy is built on can also be used to do these things programmatically.

By default, mitmproxy starts up with a mutt-like interactive curses interface - the built-in help page (which you can view by pressing "?") will tell you everything you need to know. Note that requests and responses are stored in-memory until you delete them, so leaving mitmproxy running indefinitely or requesting very large amounts of data through it is a bad idea.

SSL

The first time mitmproxy is started, it will generate a bogus SSL certificate authority (the default location is ~/.mitmproxy/ca.pem). This CA is used to generate certificates for SSL requests on-the-fly. To avoid the hassle of having to accept these certificates individually, you can add the certificate authority to your browser or globally to your system.

Documentation

A rendered version of the docs for the latest release can be found here:

http://corte.si/projects.html

Download

Releases can be found here: http://corte.si/projects.html

Source is hosted here: http://github.com/cortesi/mitmproxy

Requirements

  • A recent Python interpreter.
  • SSL certificates are generated using openssl
  • The curses interface relies on version 0.9.8 or newer of the urwid library.
  • The test suite uses the pry unit testing library.

You should also make sure that your console environment is set up with the following:

  • EDITOR environment variable to determine the external editor.
  • PAGER environment variable to determine the external pager.
  • Appropriate entries in your mailcap files to determine external viewers for request and response contents.