【问题标题】:Python Cherrypy DECRYPTION_FAILED_OR_BAD_RECORD_MACPython Cherrypy DECRYPTION_FAILED_OR_BAD_RECORD_MAC
【发布时间】:2022-05-09 14:28:53
【问题描述】:

再会, 我有一个使用 Cherrypy 来服务一个简单网站的应用程序。我不时收到DECRYPTION_FAILED_OR_BAD_RECORD_MAC 错误。我在测试时从未见过我自己的问题,这仅在日志中很明显。

[26/Nov/2021:02:50:39] ENGINE Error in HTTPServer.serve
Traceback (most recent call last):
  File \"/home/user/app/venv/lib/python3.8/site-packages/cheroot/server.py\", line 1810, in serve
    self._connections.run(self.expiration_interval)
  File \"/home/user/app/venv/lib/python3.8/site-packages/cheroot/connections.py\", line 201, in run
    self._run(expiration_interval)
  File \"/home/user/app/venv/lib/python3.8/site-packages/cheroot/connections.py\", line 218, in _run
    new_conn = self._from_server_socket(self.server.socket)
  File \"/home/user/app/venv/lib/python3.8/site-packages/cheroot/connections.py\", line 272, in _from_server_socket
    s, ssl_env = self.server.ssl_adapter.wrap(s)
  File \"/home/user/app/venv/lib/python3.8/site-packages/cheroot/ssl/builtin.py\", line 277, in wrap
    s = self.context.wrap_socket(
  File \"/usr/lib/python3.8/ssl.py\", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File \"/usr/lib/python3.8/ssl.py\", line 1040, in _create
    self.do_handshake()
  File \"/usr/lib/python3.8/ssl.py\", line 1309, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1131)

Cherrypy 是否有一种简单的方法可以将其记录为日志中的一行错误,或者有没有办法修复它?

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python ssl cherrypy cheroot


【解决方案1】:

我遇到了同样的情况(还有 SSLV3_ALERT_BAD_CERTIFICATE)。我的设置:CherryPy 18.5.0;蟒蛇 3.7

我用自签名证书(我认为这是问题的关键信息)

由于证书不受信任,浏览器会指出它不是一个适当安全的连接。用户需要点击确认他们仍然想浏览这些页面。 来自 Edge 或 Chrome 的访问尝试不会触发此 CherryPy 错误。 Firefox 似乎甚至在确保请求继续进行之前(即甚至在确认之前)就向服务器发送了一些东西。

恕我直言,CherryPy 应该处理 SSL 错误(捕获异常)并让用户处理它们。

由于我无法控制用户的浏览器选择,也无法捕获 SSL 异常,因此我的“解决方案”是让用户安装自签名证书。从那时起,他们可以在没有警告的情况下浏览页面,并且不再在日志中弹出此类 CherryPy 错误。

我知道这是一个非常薄弱的​​解决方案,但没有人回答,所以我想我会分享这个,因为它可能会对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-11
    • 2020-04-14
    • 2015-09-24
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2019-02-23
    相关资源
    最近更新 更多