ssl_reject_handshake

`ssl_reject_handshake` 指令用于根据配置中定义的条件控制是否拒绝 SSL 握手。 — NGINX HTTP Core

ssl_reject_handshake
httpserver
语法ssl_reject_handshake on | off;
默认值off
上下文http, server
模块NGINX HTTP Core
参数flag

说明

`ssl_reject_handshake` 指令提供了一种机制,用于管理当客户端尝试与服务器建立安全连接时发生的 SSL 协议握手。启用后,该指令会影响服务器在接收到 SSL 握手请求时的行为,具体表现为根据在服务器配置中设置的预定义规则或条件拒绝该握手尝试。 该指令可放置在 `http` 或 `server` 上下文中,并接收一个标志参数。该标志可以为 `on` 或 `off`,分别用于启用或禁用对 SSL 握手的拒绝。当该指令设置为 `on` 时,任何不符合指定条件的客户端请求都会被立即终止,从而阻止建立 SSL 连接。此功能对于希望通过根据客户端特征或行为控制哪些客户端可以发起 SSL 握手来增强安全性的服务器管理员尤其有用。 重要的是,应将此指令与其他访问控制指令(例如 `allow` 和 `deny`)结合配置,以充分利用其功能。这可确保只有经过授权的客户端能够继续握手过程,从而降低未经授权访问和在 SSL 协商期间可能出现的漏洞相关风险。

配置示例

server {
    listen 443 ssl;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ssl_reject_handshake on;
}

确保在此指令所在的 server block 中已正确启用 SSL/TLS。

配置错误可能导致合法客户端被拒绝访问,因此在部署到生产环境之前请仔细测试配置。

在拒绝 SSL handshakes 时,请考虑对应用功能的影响。