首页 > 解决方案 > 尝试从 python 脚本连接到服务器时,我得到错误证书太弱。有没有办法告诉openssl忽略这个?

问题描述

我正在尝试从 python 脚本连接到 bugzilla api。我正在使用请求模块。服务器正在使用旧证书,当我使用提供的证书从 chrome 浏览器访问时,我收到警告“站点不安全”,但它仍然允许我访问。

这是我的脚本

    payload = {'id': 'XXXXX', 'api_key': 'XXXXXXXXXXXXXXXXXXX'}
    r = requests.get('https://example.org/bugzilla/rest/bug', params=payload, verify=False, cert=('myCert.crt', 'myKey.key'))

这是我得到的回溯的结尾:

  File "C:\Workspace\programs\Python\Python3.7\lib\site-packages\urllib3\util\ssl_.py", line 344, in ssl_wrap_socket
    context.load_cert_chain(certfile, keyfile)
  File "C:\Workspace\programs\Python\Python3.7\lib\site-packages\urllib3\contrib\pyopenssl.py", line 450, in load_cert_chain
    self._ctx.use_certificate_chain_file(certfile)
  File "C:\Workspace\programs\Python\Python3.7\lib\site-packages\OpenSSL\SSL.py", line 908, in use_certificate_chain_file
    _raise_current_error()
  File "C:\Workspace\programs\Python\Python3.7\lib\site-packages\OpenSSL\_util.py", line 54, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'SSL_CTX_use_certificate', 'ca md too weak')]

有没有办法告诉 OpenSSL 忽略证书不安全的事实?

标签: pythonopensslpython-requests

解决方案


推荐阅读