aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-04-29 11:18:56 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-04-29 11:18:56 +1200
commit7ca5c7ae90c32cfc238d893eb302acc06deb2e70 (patch)
tree40921f0e9573584927d2587425c89107f8505915
parent77eca33f2695eea690dff7999c0e1bd3df0e1733 (diff)
downloadmitmproxy-7ca5c7ae90c32cfc238d893eb302acc06deb2e70.tar.gz
mitmproxy-7ca5c7ae90c32cfc238d893eb302acc06deb2e70.tar.bz2
mitmproxy-7ca5c7ae90c32cfc238d893eb302acc06deb2e70.zip
Basic SSL support.
-rw-r--r--libpathod/app.py1
-rw-r--r--libpathod/resources/server.crt14
-rw-r--r--libpathod/resources/server.key15
-rwxr-xr-xpathod28
4 files changed, 54 insertions, 4 deletions
diff --git a/libpathod/app.py b/libpathod/app.py
index 15d99023..399d1340 100644
--- a/libpathod/app.py
+++ b/libpathod/app.py
@@ -80,4 +80,3 @@ def run(application, port, ssl_options):
http_server.listen(port)
tornado.ioloop.IOLoop.instance().start()
-
diff --git a/libpathod/resources/server.crt b/libpathod/resources/server.crt
new file mode 100644
index 00000000..ddcc0a33
--- /dev/null
+++ b/libpathod/resources/server.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICITCCAYoCCQDkPC8Z2YHxuDANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
+WjEOMAwGA1UECBMFT3RhZ28xEDAOBgNVBAcTB0R1bmVkaW4xDzANBgNVBAoTBlBh
+dGhvZDETMBEGA1UEAxMKcGF0aG9kLm9yZzAeFw0xMjA0MjgyMzEyNTZaFw0yMDA3
+MTUyMzEyNTZaMFUxCzAJBgNVBAYTAk5aMQ4wDAYDVQQIEwVPdGFnbzEQMA4GA1UE
+BxMHRHVuZWRpbjEPMA0GA1UEChMGUGF0aG9kMRMwEQYDVQQDEwpwYXRob2Qub3Jn
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrc44bNmzRsfnAXKeaLA/GLc+R
+zJUl+CtGghe5K9ESYqmF9JvKegfWpYqTqWZM+WtoQtkR4SLW/6KS2sXO2bwzdC/m
+pfTYB+rFf6uRTNILBPkpb2YHh+p1ldwgRJ8ftqZrOyPv1lMP0mCgAMGR75rGvC5D
+TbQZU7O8foyQYzz58wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBACkZH6zSOlk1pcLN
+9qwDuCG8yw3SR1E+B8n/jOiysqA8eZc5EL7njJMSZZMTHqfIfx6sfHH5aPSgCGCL
+EzBz741uKkzuai1GXr34tqf3z1faSws00lJG5jHYevef9Og1RtClPfGcrH25+I1Z
+unGdLFYj1i6owrv0UdWyHQxepzKV
+-----END CERTIFICATE-----
diff --git a/libpathod/resources/server.key b/libpathod/resources/server.key
new file mode 100644
index 00000000..ce07e7c2
--- /dev/null
+++ b/libpathod/resources/server.key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDrc44bNmzRsfnAXKeaLA/GLc+RzJUl+CtGghe5K9ESYqmF9JvK
+egfWpYqTqWZM+WtoQtkR4SLW/6KS2sXO2bwzdC/mpfTYB+rFf6uRTNILBPkpb2YH
+h+p1ldwgRJ8ftqZrOyPv1lMP0mCgAMGR75rGvC5DTbQZU7O8foyQYzz58wIDAQAB
+AoGAFNKvarCxhwoacGzBVd03t+stRFO3jRgZm669sl6xqtKW84XikVGhh9Y0H0MI
+DR6x5RKkZ/RlRGZvVlWK0PRotGjIoepX3D+LBFgCJjVVI+dHjRAZ3758e+iqC7Zy
+3gVX7+fqiL56R5lZ02TofM/5I6JoJq/3ZP4SGB1tUO+BVaECQQD/SK/cxxhwdn0U
+juPWvAp8iKXiI5YttkzIUdyezv3ZKW8YzcvFokKL0WrFOM3bbJNDomGZgtyZmB+3
+c0/dCPwtAkEA7Byge10ovR4/c3t0ELQ/O8mKz48gPkd82Up369amAfkhmGxfYgDr
+gMx7ExTKxaa1swjrD/h7jtz5MvukqXACnwJAFw5ai8cThvy8mUG6hCdhjxPMX5s1
+MhW345O5KEKrnJRoa0YS9FuORRB54ywZM4sf1cjxpaqy/9BEdQ4eFWl9VQJBANr+
+ylLh21Fd5thD3ylHJYdcreVKCUv6nnAkRAp4ss0Nt/1aNzX9SHHUNytBk7mzoMAI
+O446mM+vYWvKP7XwcF0CQFFWxyizXOJG7rf72RtXCHf+LdJGJaOa9yLFdrMDBPtX
+pDz6hFPxk54zecInfOJwcWkKFSniYLNii6dA3Nf2Ng0=
+-----END RSA PRIVATE KEY-----
diff --git a/pathod b/pathod
index 100a70a2..810763e2 100755
--- a/pathod
+++ b/pathod
@@ -1,22 +1,44 @@
#!/usr/bin/env python
import argparse
-from libpathod import app
+from libpathod import app, utils
import tornado.ioloop
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument("-p", dest='port', default=8888, type=int, help='Port.')
parser.add_argument(
- "-s", dest='staticdir', default=None, type=str,
+ "-d", dest='staticdir', default=None, type=str,
help='Directory for static files.'
)
+ parser.add_argument(
+ "-s", dest='ssl', default=False,
+ action="store_true",
+ help='Serve with SSL.'
+ )
+ parser.add_argument(
+ "--keyfile", dest='ssl_keyfile', default=None,
+ type=str,
+ help='SSL key file. If not specified, a default key is used.'
+ )
+ parser.add_argument(
+ "--certfile", dest='ssl_certfile', default=None,
+ type=str,
+ help='SSL cert file. If not specified, a default cert is used.'
+ )
args = parser.parse_args()
application = app.PathodApp(
staticdir=args.staticdir
)
+ if args.ssl:
+ ssl = dict(
+ keyfile = args.ssl_keyfile or utils.data.path("resources/server.key"),
+ certfile = args.ssl_certfile or utils.data.path("resources/server.crt"),
+ )
+ else:
+ ssl = None
print "pathod listening on port %s"%args.port
try:
- app.run(application, args.port, None)
+ app.run(application, args.port, ssl)
except KeyboardInterrupt:
pass