![如何将 HSTS 标头应用于 Apache 中 443 以上的所有虚拟主机](https://linux22.com/image/753797/%E5%A6%82%E4%BD%95%E5%B0%86%20HSTS%20%E6%A0%87%E5%A4%B4%E5%BA%94%E7%94%A8%E4%BA%8E%20Apache%20%E4%B8%AD%20443%20%E4%BB%A5%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA.png)
我正在寻找在 Apache 中添加 HSTS 标头...
# HSTS / Header Strict Transport Security
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
... 但我有一个很长的 vhost 列表,用于不同但相关的站点/子站点。我宁愿不必在每个 vhost 定义中都定义它,但我不知道如何在主文件中包含https.conf
仅适用于443 / https
这些 vhost 版本的设置,因为当您将 HSTS 应用于标准80 / http
站点时,它会在验证器中引发警告。
我试过用<IfModule mod_ssl.c>...</IfModule>
标签包裹它,但如果我没记错的话,这实际上只是在问SSL模块是否加载? 我尝试过很多不同的搜索方式,但当你不知道要查找的术语时,很难对所有静态内容进行分类。有什么建议吗?谢谢!
答案1
REQUEST_SCHEME
:请求 URI 的方案部分<If "%{REQUEST_SCHEME} == 'https'"> Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" </If>
HTTPS
:on
如果请求使用 https,off
否则<If "%{HTTPS} == 'on'"> Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" </If>