我在 FreeBSD 上用 Nginx 搭建了网站服务器。上周我们决定不再支持我们网站的 SSLv3 连接。
但是我想知道 nginx 是否有所有无法成功进行 SSL 握手的客户端的日志。如果我们有一些关于仍在使用 SSLv3 连接的 IP 地址的数据,那就太好了。
我尝试查看 nginx 错误日志。在那里我只找到了一些小日志
2015/03/18 16:55:32 [error] 48792#0: accept4() failed (53: Software caused connection abort)
2015/03/19 19:47:05 [error] 48791#0: accept4() failed (53: Software caused connection abort)
2015/03/19 23:39:54 [error] 48791#0: OCSP_check_validity() failed (SSL: error:2707307D:OCSP routines:OCSP_check_validity:status expired) while requesting certificate status, responder: ocsp2.globalsign.com
没有提到由于 SSLv3 握手失败而导致客户端中止。nginx 可以配置为记录此类错误吗?
答案1
在访问日志中,您可以添加 $ssl_protocol 变量,但这仅适用于启用的 SSL 协议,而 SSLv3 则不适用。使用错误日志,您可以将 log_level 修改为 info,这样当连接中止时,您将获得有关 SSL 协议的信息:
2015/03/19 09:04:21 [info] 27759#0: *1 SSL_do_handshake() failed (SSL: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number) while SSL handshaking, client: 127.0.0.1, server: 0.0.0.0:443