带有 HSTS 的 HTTPS 的 Tomcat 9 配置

问题描述 投票:0回答:1

我们正在尝试为安装在不带 IIS 的 Windows Server 2016 上的 Tomcat 9 服务器提供服务的应用程序设置 HSTS。当我从中加载页面时,开发人员控制台中的响应标头确实包含

strict-transport-security: max-age=31536000;includeSubDomains;preload
。问题是,当运行漏洞扫描时,它会返回错误消息:“远程 Web 服务器未强制执行 HSTS。”。 我们还收到一条消息,指出 TLSv1.0 已启用。 我还应该注意到,Tomcat 提供的页面是使用主域名访问的,该域名会命中负载均衡器,该负载均衡器也充当反向代理,并将所有请求传递给 Tomcat。 我们使用分配给负载均衡器的主域并直接使用 Tomcat 服务器名称(无需负载均衡器)对其进行扫描,并获得相同的扫描结果。

我已将要添加到 Tomcat

server.xml

web.xml
文件中的内容包含在内。 任何有关我们做错或遗漏的建议,我们将不胜感激。
我们已在 

server.xml

文件中包含以下内容:

<!--  For Redirect from HTTP to HTTPS  -->
<Connector executor="tomcatThreadPool"
           port="80"
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443"/>


<!--  SSL Connector  -->
<Connector
    port="443"
    scheme="https"
    secure="true"
    SSLEnabled="true"
    protocol="org.apache.coyote.http11.Http11Nio2Protocol"
    sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation">

    <SSLHostConfig sslProtocol="TLS"
                   protocols="TLSv1.2+TLSv1.3"
                   certificateKeystoreFile="G:\keystore\OUR_KEYSTORE_FILE.jks"
                   certificateKeystorePassword="OUR_KEYSTORE_PASSWORD"
                   certificateKeystoreType="JKS">
    </SSLHostConfig>
</Connector>

我们已经为 HSTS 和重定向配置了 
web.xml

文件:

<!-- Enable HSTS   -->
<filter>
    <filter-name>httpHeaderSecurity</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <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>
    <init-param>
        <param-name>hstsPreload</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>antiClickJackingOption</param-name>
        <param-value>ALLOW-FROM</param-value>
    </init-param>
    <init-param>
        <param-name>antiClickJackingUri</param-name>
        <param-value>https://OUR_PRIMARY_DOMAIN.HERE</param-value>
    </init-param>
    <async-supported>true</async-supported>
</filter>

<!-- Enable HSTS Filter  -->
<filter-mapping>
    <filter-name>httpHeaderSecurity</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
    
    
<!--  for Redirect from HTTP to HTTPS  -->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Entire Application</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

	
tomcat https hsts
1个回答
0
投票

© www.soinside.com 2019 - 2024. All rights reserved.