pythonrequests证书_python requests 设置 proxy 和 SSL 证书

例子

直接系统代理

requests 会直接使用 macOS 系统的 proxy 设置。

设置 proxy

import requests

proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}

requests.get('http://example.org', proxies=proxies)

import requests

s = requests.Session()

s.proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}

requests.get('http://example.org')

设置 SSL 证书

使用文本格式的 PEM。

import requests

proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}

requests.get('http://example.org', proxies=proxies, verify='/path-to/charles-ssl-proxying-certificate.pem')

import requests

s = requests.Session()

s.proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}

s.verify='/path-to/charles-ssl-proxying-certificate.pem'

requests.get('http://example.org')

特性

代码的配置可以覆盖系统的配置,单次的 requests 请求的设置可以覆盖 session 中的设置,参考 requests.sessions 的源码。

参考

实验

SSL 证书设置

比如上一步设置的 HTTPS Proxy 是想用 Charles 来抓包的,想用 Charles 解析 HTTPS 的请求就必须把 Charles 放在中间,客户端相信 Charles 签发的证书并和 Charles 之间 HTTPS 通信。Charles 再把自己当做一个客户端去和服务器 HTTPS 通信。

这里要做的就是让 requests 来信任 Charles 生成的 CA。这个关键的一步 requests 却不能读取系统的设置了,有点伤心。那手动好了。

类似上一步中的 proxies,session、request 中还有 verify 和 cert 参数,前者默认为 True 表示需要验证服务器的 SSL 证书,手动设置成 False 可行但是会不停的报 Warning,Warning 不太好关掉。

verify 可以设置成证书的地址,发现证书使用文本格式的 PEM 是可用的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值