我需要在 Linux 中配置 HSTS(HTTP 严格传输标头)。我在 Tomcat/Conf Web.xml 文件中添加了以下内容: httpHeaderSecurity org.apache.catalina.filters.HttpHeaderSecurityFilter
<init-param>
<param-name>hstsEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
<init-param>
<param-name>hstsIncludeSubDomains</param-name>
<param-value>true</param-value>
</init-param>
<async-supported>true</async-supported>
我还在 server.xml 文件中添加了端口 80,但仍然无法使用严格传输标头。
答案1
HSTS 是 HTTPS 站点的安全配置,不能像您一样使用纯 HTTP 进行配置。
HTTP Strict-Transport-Security 响应标头(通常缩写为 HSTS)让网站告诉浏览器只能使用 HTTPS 访问它,而不是使用 HTTP。
根据要求关联在您的评论中,要在 Tomcat 中使用 HSTS,您需要在同一主机上有一个 Web 服务器前端。
为了通过此表格加入 HSTS 预加载列表,您的网站必须满足以下一组要求:
提供有效证书。
如果您正在侦听端口 80,则在同一主机上从 HTTP 重定向到 HTTPS。
通过 HTTPS 为所有子域提供服务。
根据我们的常见问题解答,指导您执行此操作的具体步骤不是主题。
一个可能的解决方案是配置Apache+SSL+X.509 证书作为站点/Tomcat 的前端。这样做时要注意,Tomcat 也有具体步骤。另请参阅tomcat 9 官方 SSL 指南。