Jab*_*ber 7 urllib3 python-3.x python-requests
该certifi库经常遇到域证书问题,但在标准urllib.request库中没有问题。
如果我将上下文设置为使用证书文件,则会收到 SSL 错误,
import ssl
import certifi
import requests.urllib as urlrq
resp = urlrq.urlopen(url="https://<web address>/rest/info?f=json",
context=ssl.create_default_context(cafile=certifi.where()))
Run Code Online (Sandbox Code Playgroud)
如果我使用标准库并设置上下文如下:
import ssl
import certifi
import requests.urllib as urlrq
resp = urlrq.urlopen(url="https://<web address>/rest/info?f=json",
context=ssl.SSLContext(ssl.PROTOCOL_TLSv1))
Run Code Online (Sandbox Code Playgroud)
没有 SSL 错误。
我怎样才能收到尊重这一点的请求SSLContext?
默认情况下,单独创建ssl.SSLContext()不会启用证书验证或加载 CA 证书。这就是您没有看到 SSL 错误的原因。默认情况下使用ssl.create_ssl_context()确实设置验证。
因此,这里的问题不在于SSLContext或certifi,而在于网站的证书以及您如何构建SSLContext. 下一步是调查为什么网站提供的证书无效。
| 归档时间: |
|
| 查看次数: |
7996 次 |
| 最近记录: |