requests访问https页面
requests访问http很简单,但访问https页面时,需要设置是否验证服务器等情况。
当验证服务器时需要指定根证书路径进行访问,不验证证书访问时会返回证书验证警告。
-
访问时忽略验证服务器身份:
- Requests的请求默认verify=True
- 如果将 verify设置为 False,Requests 也能忽略对 SSL 证书的验证
- 但是依然会出现两行Warning,可以不用管
import requests from requests.packages import urllib3 urllib3.disable_warnings() #这一句禁用告警 response = requests.get("https://localhost/bash",verify=False) print(response.status_code)
-
访问时要求验证服务器身份:
需要通过verify 传入 CA_BUNDLE 文件的路径,或者包含可信任 CA 证书文件的文件夹路径:
requests.get('https://localhost/bash', verify='证书路径') #也可以通过Session对象进行指定证书路径 s = requests.Session() s.verify = '证书路径'
-
带客户端证书访问服务器:
requests.get('https://localhost/bash', cert=('/path/myclient.cert', '/path/myclient.key')) <Response [200]> #也可以通过Session对象指定 s = requests.Session() s.cert = '/path/myclient.cert'