我正在运行一个 Tornado Web 服务器,它只接受 SSL 连接,并且只监听端口 443。通过 HTTPS 在浏览器中连接它可以正常工作。
我在日志中看到如下消息:
ERROR [tornado.general] Uncaught exception
[...]
File "/usr/lib/python3.4/ssl.py", line 828, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:600)
WARNI [tornado.access] 405 OPTIONS / (<some IP>) 0.57ms
我不确定警告是否与错误有关(我需要在日志中添加时间戳)。请求来得不快,这让我认为这不是攻击;另一方面,它们来自世界各地,这是一个很多人不应该知道的网站。
如果我自己尝试,http://my-site:443
我会得到同样的异常,没有警告,加上一行:
WARNI [tornado.general] SSL Error on 18 ('<my IP>', <port>): [SSL: HTTP_REQUEST] http request (_ssl.c:600)
是否使用了错误的协议来连接 HTTPS 端口?
答案1
尝试使用 SSL 服务器检查器访问您的网站ssllabs.com。似乎某些 SSL 客户端的某些问题导致它们中止握手。这可能是各种扫描仪的问题,也可能是某些客户端拒绝了有关您的 SSL 连接的某些内容并将其丢弃。许多客户端将使用降级的连接重试,这就是网站没有失败的原因。
“OPTIONS”警告可能无关。