提问人:Xiaoer 提问时间:9/7/2023 更新时间:9/7/2023 访问量:134
nginx 服务防止 IP 泄漏 ssl 证书
nginx service prevents IP leaks ssl certificate
问:
我用 Nginx 拒绝直接 IP 访问,以免泄露我的源站证书,服务器只开放 443 端口。为此,我创建了一个服务器:ssl_reject_handshake on;
server {
listen 443 ssl reuseport default_server;
listen [::]:443 ssl reuseport default_server;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
include nginxconfig/block/access-cdn-ip.conf;
http2 on;
ssl_reject_handshake on;
}
它在 https 模式下工作正常,但我注意到我的 nginx 服务仍然在 censys 网站上被扫描,它是通过:,它得到了 Nginx 错误页面。http://ip:443/
The plain HTTP request was sent to HTTPS port
为此,我在服务器中配置了 IP 拦截规则,只允许 CDN 访问,但并没有生效。
还有没有办法阻止通过“http://ip:443/”访问?include nginxconfig/block/access-cdn-ip.conf;
当我使用haproxy时,只要配置了strict-sni字段,任何通过IP的访问都会被阻止。如何配置 Nginx?
我使用 haproxy 服务,censys 无法扫描我的 443 端口,它不知道我的 443 端口是什么服务器,但 nginx 知道它是 Nginx 服务器,因为它返回了错误页面。bind :::443 v4v6 ssl strict-sni crt /etc....
答:
1赞
Xiaoer
9/7/2023
#1
好的,监听 443 端口上的 ssl 流量拒绝来自 IP 的访问,但是通过 http 访问这个端口时,会出现 400 错误。实际上,它对应于 nginx 的 497 错误。解决方案是将 497 错误重定向到 444。
server {
listen 443 ssl reuseport default_server;
listen [::]:443 ssl reuseport default_server;
error_page 497 = /bad;
http2 on;
ssl_reject_handshake on;
location = /bad {
return 444;
}
}
评论
ssl_reject_handshake
http://ip:443