使用 HTTPS 保护网站时,如果配置不当,可能会泄露源站 IP。以下方法可以有效防止这一风险。
1. 问题分析
当启用 HTTPS 时,未正确配置默认站点的情况下,攻击者可以直接访问服务器的 IP 地址,获取 SSL 证书信息,从而推测源站域名。
2. 解决方案
2.1 拦截所有 HTTP 请求
所有 HTTP 连接应直接拒绝,而不是重定向到 HTTPS,以防止暴露源站 IP。
server { |
2.2 拦截未经认证的 HTTPS 请求
设置 ssl_reject_handshake on;,拒绝非法 SNI 访问:
server { |
2.3 启用 Cloudflare 代理
通过 Cloudflare 代理访问源站,避免直接暴露服务器 IP。
- 在 Cloudflare 启用 Full (Strict) SSL
- 并且只允许cloudflare ip段访问443,80端口
2.4 禁止 IP 直接访问
使用 Nginx 默认站点,拦截直接访问服务器 IP 的请求:
server { |
4. 结论
通过拦截 HTTP 及非法 HTTPS 请求、使用 Cloudflare 代理和禁止 IP 直接访问,可以有效防止 CA 证书泄露源站 IP,提升网站安全性。