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;