我正在使用SSL隧道与代理服务器连接到目标服务器。我使用http连接到代理服务器,使用HTTPS连接到目标服务器。 SSL隧道工作正常,我可以与远程服务器交换HTTPS消息,但是存在问题。代理服务器在回复urllib2的请求时返回一个标头,以建立我需要查看的SSL隧道,但是我没有看到使用urllib2(Python 2.7.3)访问它的方法。
我想我理论上可以自己实现SSL隧道握手,但这会让我更深入地了解协议(或者我感觉很舒服)。
在建立SSL隧道时,有没有办法使用urllib2访问回复?
更新:
以下是使用代理服务器连接目标服务器的代码(代理服务器和目标服务器的URL不是实际的):
proxy_handler = urllib2.ProxyHandler({'https': 'http://proxy.com'})
url_opener = urllib2.build_opener (proxy_handler)
request = urllib2.Request ('https://target_server.com/')
response = url_opener.open (request)
print response.headers.dict
我使用WireShark来查看消息流量。 WireShark不会向我显示与目标服务器交换的消息的主体,因为它们是加密的,但我可以看到SSL隧道握手的主体。我可以看到我感兴趣的标题从代理服务器返回。
答案 0 :(得分:0)
您是如何调用https页面的?
你正在使用吗?resp = urllib2.urlopen('https')
resp.info().headers