【问题标题】:[SSL: CERTIFICATE_VERIFY_FAILED][SSL: CERTIFICATE_VERIFY_FAILED]
【发布时间】:2020-12-07 19:59:50
【问题描述】:

我是 python 新手,不幸的是,我已经尝试了所有方法,方法是将 cacert.pem 文件从 /lib/site-packages/certifi 复制到 /lib/site-packages/requests,然后覆盖此函数并覆盖此函数设置的变量来解决问题。不幸的是,它没有用。我为我糟糕的英语和愚蠢的问题道歉,但不幸的是我找不到合适的解决方案或正确使用它。非常感谢!

  I got this error:
  File "C:/Users/User/PycharmProjects/X/X/X.py", line 37, in <module>
    response = requests.get(url, headers=headers, data=body, verify='False')
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\adapters.py", line 416, in send
    self.cert_verify(conn, request.url, verify, cert)
  File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\adapters.py", line 227, in cert_verify
    raise IOError("Could not find a suitable TLS CA certificate bundle, "
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: False
 my code for rest api:

payload  = {}
headers = dict(Authorization='Bearer '
                             'jwt=TOKEN..')

response = requests.get(url, headers=headers, data=payload, verify='False')

print(response.text.encode('utf8'))```

【问题讨论】:

  • verify=False 是布尔值,表示不验证服务器; verify='False' 是一个 string 值,表示使用名为 False文件或目录 的内容进行验证,而您没有这样的文件或目录。 verify=True (bool) or 省略表示使用 default 位置进行验证,它会自动使用 certifi 而无需您做任何“帮助”。
  • @dave_thompson_085 如果我 romoved verify,我得到了这个: Traceback self.connect() self.sock = self._context.wrap_socket(self.sock, 500, in wrap_socket return self.sslsocket_class._create( self.do_handshake() self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl.c:1123)

标签: python-3.x ssl tls1.2 rest ioerror


【解决方案1】:

https://requests.readthedocs.io/en/master/user/advanced/

我通过添加证书解决了

payload  = {}
headers = dict(Authorization='Bearer '
                             'jwt=TOKEN..')

response = requests.get(url,cert=('client.crt', 'client.pem.txt'), verify=False headers=headers, data=payload)

print(response.text.encode('utf8'))```

【讨论】:

    猜你喜欢
    • 2015-04-01
    • 2015-05-05
    • 2021-02-22
    • 2018-08-17
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    相关资源
    最近更新 更多