目录

防止SNI信息泄露

目录

有了 ssl_reject_handshake (Nginx ≥ 1.19.4)这个参数,再也不需要strict-sni.patch了。

本质需求就是为了当机器人或者奇怪的人类通过HTTPS访问你的IP时不暴露证书,也就不会暴露域名。

官方文档给了个例子如下,在以下配置中,除example.com以外,其他域名的SSL握手将被拒绝。(返回UNRECOGNIZED NAME,Chrome提示ERR_SSL_UNRECOGNIZED_NAME_ALERT)

server {
    listen 443 ssl default_server;
    ssl_reject_handshake on;
}

server {
    listen              443 ssl;
    server_name         example.com;
    ssl_certificate     example.com.crt;
    ssl_certificate_key example.com.key;
}

注意事项

  • nginx无法启用tls1.3的握手失败解决办法,openssl 1.1.1h bug,详细见传送门
    • 升级至openssl ≥ 1.1.1j 修复此问题