Nginx设置不可IP直接访问,不管是80端口还是443端口,在设置HTTPS时就会遇到证书问题,那么问题的关键是如何设置HTTPS证书为空。
🔒 Nginx设置HTTPS证书为空
当需要禁止IP直接访问时,可以通过以下配置实现:
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
set $empty "";
ssl_ciphers aNULL;
ssl_certificate data:$empty;
ssl_certificate_key data:$empty;
return 444;
}
📝 配置说明
default_server
:设置为默认服务器,处理所有未匹配的请求server_name _
:匹配所有未定义的域名ssl_ciphers aNULL
:设置SSL加密套件为空ssl_certificate data:$empty
:设置空的SSL证书ssl_certificate_key data:$empty
:设置空的SSL私钥return 444
:返回444状态码(Nginx特有,直接关闭连接)
这样配置后,任何通过IP直接访问的请求都会被拒绝,有效防止恶意扫描和未授权访问。