python - 无法使用 urlib2 通过代理发送 HTTPS 请求

标签 python https openssl urllib2

我正在尝试创建一个通过代理(确切地说是 Burp)发送 HTTPS 请求的 Python 脚本,但它一直失败并显示

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错误)有端口问题或者地址之一是在统一码中。对我来说都没有意义。有什么建议吗?

最佳答案

试试这个代码。我让它与 burp

一起工作

测试.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()

打嗝配置

enter image description here

<小时/>

演示

enter image description here

关于python - 无法使用 urlib2 通过代理发送 HTTPS 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510745/

相关文章:

python - 消息队列 IPC Python 到 C

python - 在 docker build 中找不到 ssl 证书或 key 文件

ruby-on-rails - Rails Heroku SSL https ://redirect

javascript - jQuery 下拉菜单不适用于 HTTPS 而适用于 HTTP

openssl - libcurl 与 OpenSSLUnknown SSL 协议(protocol)连接错误 -(无服务器问候) - 为什么?

python - 如何修复 SSL 问题 SSL_CTX_use_certificate : ca md too weak on Python Zeep

python - 在 pandas 系列中标记连续的 True 元素组

python - 难以初始化 kivy 屏幕,TypeError : __init__() takes 1 positional argument but 2 were given

swift - Alamofire ssl 错误证书 Swift

python - m2crypto:python 2.7 兼容性以及使用哪个版本的 OpenSSL?