Apache配置HTTPS安全响应头核心是:仅在块内启用mod_headers和mod_ssl模块后,用Header always set设置HSTS、X-Content-Type-Options、CSP等关键头,确保覆盖所有响应状态码,并配套HTTP重定向与服务器指纹隐藏。

Apache 配置 HTTPS 时加安全响应头,核心是:只在 <virtualhost></virtualhost> 块内、启用 mod_headers 模块后,用 Header always set 设置关键头字段。不能写在 HTTP(:80)配置里,也不能只用 Header set——否则错误页(如 404、500)会漏掉防护。
确认并启用必要模块
没有 mod_headers,所有 Header 指令都无效;没有 mod_ssl,HTTPS 和 HSTS 就无法生效:
- 运行
apachectl -M | grep -E "(headers|ssl)",确认输出含headers_module和ssl_module - 若缺失,在主配置中取消注释或添加:
LoadModule headers_module modules/mod_headers.soLoadModule ssl_module modules/mod_ssl.so - Debian/Ubuntu 用户可直接执行:
sudo a2enmod headers ssl && sudo systemctl restart apache2
在 :443 虚拟主机中设置 HSTS
HSTS 只对 HTTPS 响应生效,且必须在 <virtualhost></virtualhost> 内配置,HTTP 主机里加了无效:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 初始测试推荐:
Header always set Strict-Transport-Security "max-age=300; includeSubDomains" - 稳定数天后升级为生产配置:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" - 务必配套在
<virtualhost></virtualhost>中设置重定向:Redirect permanent / https://yourdomain.com/
补充其他关键安全头(全部用 always set)
这些头必须覆盖所有响应状态码,包括错误页和重定向响应:
-
X-Content-Type-Options: nosniff—— 阻止浏览器 MIME 嗅探,防 XSS 类型混淆 -
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self';—— 禁用内联脚本与eval,是 XSS 防御核心 -
X-Frame-Options: DENY或更现代的Content-Security-Policy: frame-ancestors 'none';(二者不共存) -
Referrer-Policy: strict-origin-when-cross-origin—— 平衡隐私与功能 -
Permissions-Policy: geolocation=(), microphone=(), camera=()—— 明确禁用敏感 API
隐藏服务器指纹,减少信息泄露
默认响应头暴露 Apache 版本和模块,给攻击者提供线索:
- 在主配置或虚拟主机中添加:
ServerTokens ProdServerSignature Off - 效果:响应头中不再显示
Server: Apache/2.4.52 (Ubuntu)这类完整标识 - 配合前述安全头一起启用,让攻击面更小、更难被针对性利用

















