aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol2/ssl.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-08-06 12:32:33 +0200
committerMaximilian Hils <git@maximilianhils.com>2015-08-11 20:32:12 +0200
commit314e0f5839fcd4a1c35323f61938b207232de287 (patch)
treeedd2a7a2d77011812b3880f8fe03d94ab98e846d /libmproxy/protocol2/ssl.py
parentaac0ab23ebb0e4d88306b12efee1dd31338f7664 (diff)
downloadmitmproxy-314e0f5839fcd4a1c35323f61938b207232de287.tar.gz
mitmproxy-314e0f5839fcd4a1c35323f61938b207232de287.tar.bz2
mitmproxy-314e0f5839fcd4a1c35323f61938b207232de287.zip
add reverseproxy mode, fix bugs
Diffstat (limited to 'libmproxy/protocol2/ssl.py')
-rw-r--r--libmproxy/protocol2/ssl.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/libmproxy/protocol2/ssl.py b/libmproxy/protocol2/ssl.py
index 32798e72..a744a979 100644
--- a/libmproxy/protocol2/ssl.py
+++ b/libmproxy/protocol2/ssl.py
@@ -14,7 +14,7 @@ class SslLayer(Layer):
self._client_ssl = client_ssl
self._server_ssl = server_ssl
self._connected = False
- self._sni_from_handshake = None
+ self.client_sni = None
self._sni_from_server_change = None
def __call__(self):
@@ -74,7 +74,7 @@ class SslLayer(Layer):
if self._sni_from_server_change is False:
return None
else:
- return self._sni_from_server_change or self._sni_from_handshake
+ return self._sni_from_server_change or self.client_sni
def _establish_ssl_with_client_and_server(self):
"""
@@ -97,7 +97,7 @@ class SslLayer(Layer):
else:
raise RuntimeError("Unexpected Message: %s" % message)
- if server_err and not self._sni_from_handshake:
+ if server_err and not self.client_sni:
raise server_err
def handle_sni(self, connection):
@@ -111,14 +111,14 @@ class SslLayer(Layer):
sn = connection.get_servername()
if not sn:
return
- self._sni_from_handshake = sn.decode("utf8").encode("idna")
+ self.client_sni = sn.decode("utf8").encode("idna")
if old_upstream_sni != self.sni_for_upstream_connection:
# Perform reconnect
if self.server_ssl:
self.yield_from_callback(Reconnect())
- if self._sni_from_handshake:
+ if self.client_sni:
# Now, change client context to reflect possibly changed certificate:
cert, key, chain_file = self.find_cert()
new_context = self.client_conn.create_ssl_context(
@@ -195,8 +195,8 @@ class SslLayer(Layer):
sans.add(host)
host = upstream_cert.cn.decode("utf8").encode("idna")
# Also add SNI values.
- if self._sni_from_handshake:
- sans.add(self._sni_from_handshake)
+ if self.client_sni:
+ sans.add(self.client_sni)
if self._sni_from_server_change:
sans.add(self._sni_from_server_change)