Tomcat HTTP 到 HTTPS 重定向不改变端口

Tomcat HTTP 到 HTTPS 重定向不改变端口

我在 Tomcat 中无法将 HTTP 重定向到 HTTPS。

在 Server.xml 中我有连接器

     <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" />

     <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="100"
           minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" scheme="https" secure="true"
           SSLEnabled="true" clientAuth="false"
           sslProtocol="TLS" keyAlias="some_alias"
           keystoreFile="secret-keystore-files"
           keystorePass="Supersafepassword" />

并在 web.xml 中


    <security-constraint>
        <web-resource-collection>
            <web-resource-name>HTTPSOnly</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

HTTPS 工作正常,没有证书问题,但是当我访问 http://server:8080 时,我被重定向到 https://server:8080(相同端口),而不是预期的 8443。

答案1

正如已经回答的那样:

问题是由于浏览器中缓存了重定向位置而导致的。(某些浏览器可能以不同的方式处理重定向缓存)

如果您经常更改位置,请确保不要使用 HTTP 301 重定向...

更多信息: https://stackoverflow.com/questions/9130422/how-long-do-browsers-cache-http-301s

答案2

我的 Chrome 浏览器似乎还剩下一些东西。它适用于 Edge 和隐身模式的 Chrome 浏览器

相关内容