Apache配置HTTPS安全响应头核心是:仅在<VirtualHost *:443>块内启用mod_headers模块后,用Header always set设置CSP、X-Content-Type-Options、X-Frame-Options、Referrer-Policy四大基础头及HSTS、Permissions-Policy等强化头,确保覆盖所有响应状态码。

Apache 中配置 HTTPS 安全响应头,核心是通过 Header set 指令在启用 SSL 的虚拟主机内统一注入关键安全策略。这些头不是可选项,而是现代 Web 应用防御 XSS、MIME 嗅探、点击劫持等基础攻击的必需防线。
必须启用的四大安全响应头
以下四个响应头应作为最低标准全部配置,且需在 <VirtualHost *:443> 块中生效:
-
Content-Security-Policy(CSP):限制脚本、样式、图片等资源加载来源。例如只允许同源和可信 CDN:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'" - X-Content-Type-Options: nosniff:阻止浏览器根据响应体“猜测” MIME 类型,防止 HTML 被误执行为 JS 或 CSS。
-
X-Frame-Options: DENY:禁止页面被嵌入任何 iframe,彻底防御点击劫持;若需同域嵌入,可用
SAMEORIGIN。 - Referrer-Policy: no-referrer-when-downgrade:控制 Referer 头发送行为,避免敏感路径泄露到第三方站点。
HTTPS 环境下需额外强化的头
仅开启 HTTPS 不代表传输安全已闭环,还需确保协议与上下文一致:
Apache 2.4.62 官方 tar.gz 源码包是 Linux 及类 Unix 系统构建 Web 服务器的核心基础。通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
-
Strict-Transport-Security(HSTS):强制浏览器后续访问始终走 HTTPS,防中间人降级。建议至少设置 6 个月:
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" -
Permissions-Policy(原 Feature-Policy):禁用高风险 API,如摄像头、麦克风、地理位置等,按需启用:
Header set Permissions-Policy "geolocation=(), microphone=(), camera=()"
配置前提与注意事项
启用上述头前,请确认 Apache 已加载 headers_module(运行 apachectl -M | grep headers 验证),并在虚拟主机中开启 Header 指令权限:
- 若使用
.htaccess,需确保对应目录允许AllowOverride FileInfo;生产环境更推荐直接写在<VirtualHost>中。 - CSP 策略需配合前端实际资源路径调整,上线前建议先用
report-uri或report-to收集违规事件,避免误杀正常功能。 - 所有
Header set建议加always标志(如Header always set ...),确保重定向响应也携带安全头。
验证是否生效
部署后,用浏览器开发者工具的 Network 标签页检查任意响应的 Response Headers,确认上述字段存在且值符合预期。也可用在线工具如 securityheaders.com 扫描域名自动评分。

















