【发布时间】:2015-04-15 03:40:07
【问题描述】:
我正在尝试创建一个 Python 脚本,该脚本通过代理(确切地说是 Burp)发送 HTTPS 请求,但它一直失败
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。对我来说都没有意义。有什么建议吗?
【问题讨论】:
-
请将服务器正在使用的证书发布到
127.0.0.1:8080。此外,8443 通常用作备用 HTTPS 端口。
标签: python https openssl urllib2