Apache本身不直接防护中间人攻击,真正起作用的是在其上正确配置的TLS/SSL、HSTS、OCSP Stapling及安全响应头等策略:启用TLS 1.2+并禁用老旧协议,部署可信CA证书,强制HTTPS重定向,设置Strict-Transport-Security头,并补充CSP、X-Content-Type-Options等关键安全头。

Apache 本身不直接“防护”中间人攻击,但它作为 Web 服务器,是实施关键防御策略的核心载体。真正起防护作用的是你在 Apache 上正确配置的 TLS/SSL、HTTP 安全头和证书策略。重点不是 Apache 功能多强,而是你是否用对了它的安全能力。
启用并强制 HTTPS(TLS 1.2+)
明文 HTTP 是 MITM 的温床,所有防护都始于强制加密传输。
- 安装由可信 CA 签发的有效证书(推荐 Let’s Encrypt 免费证书),避免自签名或过期证书
- 在 Apache 配置中启用 SSL 模块:
a2enmod ssl,并确保监听 443 端口 - 禁用老旧协议:在
ssl.conf或虚拟主机中明确指定:SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
(只允许 TLS 1.2 和 TLS 1.3) - 优先使用前向保密算法,例如:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
配置 HSTS(HTTP Strict Transport Security)
HSTS 告诉浏览器“以后只许走 HTTPS”,从源头阻断 SSL 剥离攻击(如 SSLStrip)。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在 Apache 的 HTTPS 虚拟主机中添加响应头:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" - 首次部署建议先用较短
max-age(如 300 秒)测试,确认无 mixed-content 错误后再设为 1 年 - 启用
preload后,可提交至浏览器 HSTS Preload List,实现首次访问即强制 HTTPS
加固证书与连接验证机制
防止攻击者利用伪造证书或弱验证绕过信任链。
- 启用 OCSP Stapling,减少客户端证书状态查询延迟,同时增强实时吊销检查:
SSLUseStapling onSSLStaplingCache "shmcb:logs/ocsp-stapling-cache(128000)" - 设置证书链完整(含中间 CA),避免因缺失导致验证失败或降级
- 禁止客户端证书回退(除非业务必需):
SSLVerifyClient none(默认值,不主动请求客户端证书)
补充关键安全响应头
这些头部虽不直接对抗 MITM,但能大幅压缩攻击面、缓解会话劫持与内容注入风险。
- Content-Security-Policy:限制脚本、样式等资源只能从可信源加载,防 XSS 辅助的 MITM
- X-Content-Type-Options: nosniff:阻止 MIME 类型嗅探,防恶意文件伪装
- X-Frame-Options: DENY 或 Content-Security-Policy: frame-ancestors 'none':防点击劫持
- Referrer-Policy: strict-origin-when-cross-origin:避免敏感路径泄露到第三方

















