使用本地证书不再有效

2024-09-30 20:38:53 发布

您现在位置:Python中文网/ 问答频道 /正文

要使用本地证书连接到服务器,我使用以下设置:

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.ssl_ import create_urllib3_context

zwep_session = None
class SSLContextAdapter(HTTPAdapter):
def init_poolmanager(self, *args, **kwargs):
    context = create_urllib3_context()
    kwargs['ssl_context'] = context
    context.load_default_certs()
    return super(SSLContextAdapter, self).init_poolmanager(*args, **kwargs)

def _zwep_session():
    global zwep_session
    if zwep_session is None:
        zwep_session = requests.Session()
        zwep_session.auth = (settings.ZWEP_USER, settings.ZWEP_PASSWORD)
        zwep_session.mount(settings.ZWEP_SYSTEM_HOST, SSLContextAdapter())
    return zwep_session

它起作用了,我看不到回购协议有任何变化,但现在它突然不起作用了:

AttributeError: 'PyOpenSSLContext' object has no attribute 'load_default_certs'enter code here

目前正在运行:

  • 请求:2.22.0
  • urlib3 1.25.10

问题中的证书是内部证书,因此应使用本地CA存储。 该代码应该同时在windows本地计算机和ubuntu VPS上运行

我的问题是:这是一个处理问题的好方法吗?我不完全理解load\u default\u certs的功能,因为我无法找到文档&;这个补丁不是我自己创造的

谢谢你的帮助


Tags: fromimportdefaultsettingssessioncontextloadrequests