我正在尝试创建一个通过代理发送HTTPS请求的Python脚本(准确地说是Burp),但它始终失败
ssl.CertificateError: hostname 'example.com:443' doesn't match u'example.com'
这是我的代码的缩写版本:
proxy = urllib2.ProxyHandler({'https': '127.0.0.1:8080'})
opener = urllib2.build_opener(proxy)
opener.addheaders = [ ("Host", "example.com"),
...
]
urllib2.install_opener(opener)
try:
req = opener.open( 'https://example.com/service', 'data' ).read()
except urllib2.URLError, e:
print e
所以看起来Python认为Python(ssl.CertificateError
,我认为是Python错误,而不是OpenSSL错误)与端口或其中一个地址是Unicode有问题。对我来说都没有意义。任何sugestions?
答案 0 :(得分:1)
试试这段代码。我使用了burp
<强> test.py 强>
import urllib2
opener = urllib2.build_opener(
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.ProxyHandler({'https': 'localhost:8080'}))
urllib2.install_opener(opener)
print opener.open( 'https://example.com', 'data' ).read()
打嗝配置