带HST的HTTPS的Tomcat 9配置

带HST的HTTPS的Tomcat 9配置,tomcat,https,hsts,Tomcat,Https,Hsts,我们正在尝试为安装在Windows server 2016上且没有IIS的Tomcat 9服务器设置HST,并从该服务器提供应用程序。当我从中加载页面时,开发人员控制台中的响应标题确实包含“严格的传输安全性:max age=31536000;includeSubDomains;preload”。问题是,当运行漏洞扫描时,它会返回错误消息,说明“远程web服务器未强制实施HST”。我们还收到一条消息说TLSv1.0已启用 我还应该注意,Tomcat提供的页面是使用主域名访问的,主域名访问负载平衡器

我们正在尝试为安装在Windows server 2016上且没有IIS的Tomcat 9服务器设置HST,并从该服务器提供应用程序。当我从中加载页面时,开发人员控制台中的响应标题确实包含“严格的传输安全性:max age=31536000;includeSubDomains;preload”。问题是,当运行漏洞扫描时,它会返回错误消息,说明“远程web服务器未强制实施HST”。我们还收到一条消息说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>

我们已使用以下内容为HST和重定向配置了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>

httpHeaderSecurity
org.apache.catalina.filters.HttpHeaderSecurityFilter
HST被禁止
真的
hstsMaxAgeSeconds
31536000
HST俱乐部子域
真的
HST预载
真的
防舔吸
允许从
防舔
https://OUR_PRIMARY_DOMAIN.HERE
真的
httpHeaderSecurity
/*
要求
整个应用程序
/*
保密的