aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-08-26 15:12:04 +0200
committerMaximilian Hils <git@maximilianhils.com>2015-08-26 15:12:04 +0200
commit778644d4b810e87ce20cf9da1dca55913c2ffd07 (patch)
tree70757bc028b71bd4d94a9ef1178eadebf7d4f6b1 /libmproxy
parent605af2d3d4bfb95254fe342048e4a6ee85b1ac36 (diff)
downloadmitmproxy-778644d4b810e87ce20cf9da1dca55913c2ffd07.tar.gz
mitmproxy-778644d4b810e87ce20cf9da1dca55913c2ffd07.tar.bz2
mitmproxy-778644d4b810e87ce20cf9da1dca55913c2ffd07.zip
http2: fix bugs, chrome works :tada:
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/protocol2/http.py2
-rw-r--r--libmproxy/protocol2/tls.py6
-rw-r--r--libmproxy/proxy/config.py5
3 files changed, 8 insertions, 5 deletions
diff --git a/libmproxy/protocol2/http.py b/libmproxy/protocol2/http.py
index 649e7843..e3878fa6 100644
--- a/libmproxy/protocol2/http.py
+++ b/libmproxy/protocol2/http.py
@@ -279,7 +279,7 @@ class HttpLayer(Layer):
if isinstance(e, ProtocolException):
raise e
else:
- raise ProtocolException(repr(e), e)
+ raise ProtocolException("Error in HTTP connection: %s" % repr(e), e)
finally:
flow.live = False
diff --git a/libmproxy/protocol2/tls.py b/libmproxy/protocol2/tls.py
index 96ee643f..ce684eb9 100644
--- a/libmproxy/protocol2/tls.py
+++ b/libmproxy/protocol2/tls.py
@@ -153,7 +153,7 @@ class TlsLayer(Layer):
alpn_select_callback=self.__alpn_select_callback,
)
except tcp.NetLibError as e:
- raise ProtocolException(repr(e), e)
+ raise ProtocolException("Cannot establish TLS with client: %s" % repr(e), e)
def _establish_tls_with_server(self):
self.log("Establish TLS with server", "debug")
@@ -189,9 +189,9 @@ class TlsLayer(Layer):
(tls_cert_err['depth'], tls_cert_err['errno']),
"error")
self.log("Aborting connection attempt", "error")
- raise ProtocolException(repr(e), e)
+ raise ProtocolException("Cannot establish TLS with server: %s" % repr(e), e)
except tcp.NetLibError as e:
- raise ProtocolException(repr(e), e)
+ raise ProtocolException("Cannot establish TLS with server: %s" % repr(e), e)
self.log("ALPN selected by server: %s" % self.alpn_for_client_connection, "debug")
diff --git a/libmproxy/proxy/config.py b/libmproxy/proxy/config.py
index ec91a6e0..4ca15747 100644
--- a/libmproxy/proxy/config.py
+++ b/libmproxy/proxy/config.py
@@ -14,6 +14,9 @@ TRANSPARENT_SSL_PORTS = [443, 8443]
CONF_BASENAME = "mitmproxy"
CA_DIR = "~/.mitmproxy"
+# We manually need to specify this, otherwise OpenSSL may select a non-HTTP2 cipher by default.
+# https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=apache-2.2.15&openssl=1.0.2&hsts=yes&profile=old
+DEFAULT_CLIENT_CIPHERS = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"
class HostMatcher(object):
def __init__(self, patterns=[]):
@@ -241,7 +244,7 @@ def ssl_option_group(parser):
'Can be passed multiple times.')
group.add_argument(
"--ciphers-client", action="store",
- type=str, dest="ciphers_client", default=None,
+ type=str, dest="ciphers_client", default=DEFAULT_CLIENT_CIPHERS,
help="Set supported ciphers for client connections. (OpenSSL Syntax)"
)
group.add_argument(