aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy/server.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-23 14:01:50 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-23 14:01:50 +1200
commit2c928181e841b25d5ae8d1390802900b4cc6834e (patch)
tree5bde55e614557f39821e269061e14516b39f3a54 /libmproxy/proxy/server.py
parent237e05c823958dc9ea50c648cc98bedc2ef305d3 (diff)
parente2069d52a81a2aef99dcd2da4fbc61e926b024a0 (diff)
downloadmitmproxy-2c928181e841b25d5ae8d1390802900b4cc6834e.tar.gz
mitmproxy-2c928181e841b25d5ae8d1390802900b4cc6834e.tar.bz2
mitmproxy-2c928181e841b25d5ae8d1390802900b4cc6834e.zip
Merge branch 'master' of ssh.github.com:mitmproxy/mitmproxy
Diffstat (limited to 'libmproxy/proxy/server.py')
-rw-r--r--libmproxy/proxy/server.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/libmproxy/proxy/server.py b/libmproxy/proxy/server.py
index e1587df1..71704413 100644
--- a/libmproxy/proxy/server.py
+++ b/libmproxy/proxy/server.py
@@ -117,6 +117,16 @@ class ConnectionHandler:
self.server_conn.address(),
"info")
self.conntype = "tcp"
+
+ elif not self.server_conn and self.config.mode == "sslspoof":
+ port = self.config.mode.sslport
+ self.set_server_address(("-", port))
+ self.establish_ssl(client=True)
+ host = self.client_conn.connection.get_servername()
+ if host:
+ self.set_server_address((host, port))
+ self.establish_server_connection()
+ self.establish_ssl(server=True, sni=host)
# Delegate handling to the protocol handler
protocol_handler(
@@ -308,6 +318,9 @@ class ConnectionHandler:
host = upstream_cert.cn.decode("utf8").encode("idna")
if self.server_conn.sni:
sans.append(self.server_conn.sni)
+ # for ssl spoof mode
+ if hasattr(self.client_conn, "sni"):
+ sans.append(self.client_conn.sni)
ret = self.config.certstore.get_cert(host, sans)
if not ret:
@@ -325,6 +338,8 @@ class ConnectionHandler:
if not sn:
return
sni = sn.decode("utf8").encode("idna")
+ # for ssl spoof mode
+ self.client_conn.sni = sni
if sni != self.server_conn.sni:
self.log("SNI received: %s" % sni, "debug")