插件窝 干货文章 Nginx反向代理中的HTTPS攻击防范

Nginx反向代理中的HTTPS攻击防范

SSL Nginx 攻击 limit 824    来源:    2025-04-20

Nginx反向代理中的HTTPS攻击防范

常见HTTPS攻击类型

  1. SSL/TLS协议漏洞攻击 (如Heartbleed、POODLE、BEAST等)
  2. 中间人攻击(MITM)
  3. 降级攻击
  4. 证书欺骗
  5. DDoS攻击 (如SSL握手洪水攻击)

Nginx防范措施

1. 使用安全的SSL/TLS配置

ssl_protocols TLSv1.2 TLSv1.3;  # 禁用不安全的旧版本协议
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_ecdh_curve secp384r1;  # 使用更强的椭圆曲线
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;  # 禁用会话票证以防止重放攻击

2. 启用HSTS (HTTP Strict Transport Security)

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

3. 防范降级攻击

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

4. 证书管理最佳实践

  • 使用2048位或更长的RSA密钥,或更好的ECDSA密钥
  • 定期更新证书
  • 使用证书透明度(CT)日志
  • 考虑使用Let's Encrypt等自动续期服务

5. 防范DDoS攻击

# 限制SSL/TLS握手速率
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 5m;

# 限制连接速率
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_conn conn_limit_per_ip 10;

# 限制请求速率
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
limit_req zone=req_limit_per_ip burst=20 nodelay;

6. OCSP Stapling配置

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

7. 禁用弱加密算法

ssl_dhparam /etc/nginx/ssl/dhparam.pem;  # 生成强DH参数: openssl dhparam -out /etc/nginx/ssl/dhparam.pem 4096

监控与日志

# 记录SSL握手信息
log_format ssl_log '$remote_addr - $remote_user [$time_local] '
                   '"$request" $status $body_bytes_sent '
                   '"$http_referer" "$http_user_agent" '
                   '$ssl_protocol/$ssl_cipher '
                   '$ssl_client_verify/$ssl_client_s_dn';

access_log /var/log/nginx/ssl_access.log ssl_log;

定期维护建议

  1. 定期检查SSL Labs测试评分(https://www.ssllabs.com/ssltest/)
  2. 监控证书到期时间
  3. 及时更新Nginx版本以修复安全漏洞
  4. 定期审查访问日志中的异常模式
  5. 考虑使用WAF(Web应用防火墙)增强防护

通过以上配置和措施,可以显著提高Nginx反向代理环境下的HTTPS安全性,防范大多数常见的HTTPS相关攻击。