如何防止 CA 证书泄露源站 IP

SSL证书

使用 HTTPS 保护网站时,如果配置不当,可能会泄露源站 IP。以下方法可以有效防止这一风险。

1. 问题分析

当启用 HTTPS 时,未正确配置默认站点的情况下,攻击者可以直接访问服务器的 IP 地址,获取 SSL 证书信息,从而推测源站域名。

2. 解决方案

2.1 拦截所有 HTTP 请求

所有 HTTP 连接应直接拒绝,而不是重定向到 HTTPS,以防止暴露源站 IP。

server {
listen 80 default_server;
server_name _;
return 444; # 直接丢弃连接,不响应客户端
}

2.2 拦截未经认证的 HTTPS 请求

设置 ssl_reject_handshake on;,拒绝非法 SNI 访问:

server {
listen 443 ssl default_server;
ssl_reject_handshake on;

ssl_certificate /etc/nginx/cert/techmingle.cer;
ssl_certificate_key /etc/nginx/cert/techmingle.key;

server_name _;
return 444;
}

2.3 启用 Cloudflare 代理

通过 Cloudflare 代理访问源站,避免直接暴露服务器 IP。

  • 在 Cloudflare 启用 Full (Strict) SSL
  • 并且只允许cloudflare ip段访问443,80端口

2.4 禁止 IP 直接访问

使用 Nginx 默认站点,拦截直接访问服务器 IP 的请求:

server {
listen 443 ssl default_server;
server_name _;
ssl_reject_handshake on;
return 444;
}

4. 结论

通过拦截 HTTP 及非法 HTTPS 请求、使用 Cloudflare 代理和禁止 IP 直接访问,可以有效防止 CA 证书泄露源站 IP,提升网站安全性。