Nginx 1.19.4 版本新增了一个配置参数 ssl_reject_handshake,允许服务器在 SSL/TLS 握手阶段拒绝具有错误 Server Name Indication (SNI) 的客户端连接。SNI 是一种扩展的 TLS 握手协议,允许客户端在建立连接时指定要连接的服务器名称,这主要用于支持多个 SSL 证书在一个 IP 地址上。
在某些情况下,攻击者或扫描工具可能会尝试使用错误的 SNI 值来探测或扫描服务器,从而可能暴露服务器的源站 IP。通过启用 ssl_reject_handshake 参数,Nginx 服务器可以拒绝这些具有错误 SNI 的连接请求,增加一层安全性。
简单来说,这个新配置可以帮助 Nginx 服务器防止被某些互联网扫描工具(如 Censys)通过错误的 SNI 请求探测出其源站 IP 地址,从而增强了服务器的安全性。
在server块里listen(监听端口)下添加一行
ssl_reject_handshake on;完整配置举例:
server {
listen 80;
listen 443 ssl;
ssl_reject_handshake on;
#....
}ps: 也可以在后面追加一个return 444断开链接
return 444;原创
Nginx 拒绝错误SNI请求以防止源站被扫描
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

赞赏支持
如果觉得文章对你有帮助,可以请作者喝杯咖啡 ☕





评论交流
欢迎留下你的想法