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()))如果我使用标准库并按如下方式设置上下文:
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))无SSL错误。
我如何才能获得遵守此SSLContext的请求
发布于 2020-09-25 22:14:20
默认情况下,单独创建ssl.SSLContext()不会启用证书验证或加载CA证书。这就是您看不到SSL错误的原因。默认情况下,使用ssl.create_ssl_context()会设置验证。
所以这里的问题不是SSLContext或certifi的问题,而是网站的证书和你如何构建SSLContext的问题。下一步将是调查网站提供的证书无效的原因。
https://stackoverflow.com/questions/64063235
复制相似问题