【问题标题】:SSL bad handshake error with Python requestsPython 请求的 SSL 握手错误
【发布时间】:2018-05-21 12:14:34
【问题描述】:

在使用带有登录https://selfserve.publicmobile.ca/Overview/ 的请求的python 脚本时,我收到SSL“错误握手”错误

这是错误:

Traceback (most recent call last):
  File "/home/pi/Documents/repos/private-repos/public-mobile-usage-scraping/pm_usage_scraping_to_db.py", line 55, in <module>
    r = s.get(URL)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 526, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 513, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 623, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
SSLError: ("bad handshake: Error([('SSL routines',  'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)

我知道一种解决方法是设置 verify=False,但会让我容易受到攻击,尤其是因为我想通过它发送我的用户名和密码。

根据我的研究,该网站似乎缺少中间证书(请参阅https://www.ssllabs.com/ssltest/analyze.html?d=selfserve.publicmobile.ca)。

这是真的吗?我在哪里/如何找到中间证书以将其添加到我的代码中?

另外,如果我使用我的帐户凭据向该站点发出非 SSL 请求,考虑到我只是在我的家庭网络中这样做,会有多糟糕?

我是 python 和网络抓取的新手,对 SSL 和网络安全只有初步的了解。非常感谢您的帮助!

【问题讨论】:

  • 请求必须经过您的家庭网络才能到达网站,因此非 SSL 请求会将其中的数据暴露给整个网络。
  • 谢谢,这向我证实了我必须找到解决方案。在网上搜索了几个小时的解决方案,但无济于事:(

标签: python ssl web-scraping ssl-certificate python-requests


【解决方案1】:

s.get(***, verify=False) 你试试,cancal 验证

【讨论】:

    猜你喜欢
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多