我正在运行一个只接受SSL连接的Tornado Web服务器,只能监听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我会得到相同的exception,但没有警告,再加上一行:
WARNI [tornado.general] SSL Error on 18 ('<my IP>', <port>): [SSL: HTTP_REQUEST] http request (_ssl.c:600)
有什么东西使用错误的协议来连接到HTTPS端口?
尝试使用ssllabs.com上的SSL服务器检查器来访问您的站点。 它看起来像一些SSL客户端正在导致他们中止握手。 这可能是各种扫描仪,或者可能是一些客户拒绝一些关于您的SSL连接,并将其放弃。 许多客户将重试与降级连接,这就是为什么该网站没有失败。
“选项”警告可能是无关的。