Tomcat 使用端口 443 处理 http 而不处理 https !

Tomcat 使用端口 443 处理 http 而不处理 https !

对 Tomcat 发生的事情有误解!

我已将应用程序部署为 ROOT.war 并放在 Tomcat 上。我有一个仅希望通过 SSL 访问的 URL。

Tomcat处理好这个URL:

http://本地主机:443/securedUrl

并且不处理此 URL:

https://localhost/securedUrl

为什么?

一段$CATALINA_HOME/conf/server.xml:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="443" />

    <Connector  port="443" 
                maxThreads="150" 
                minSpareThreads="25" 
                maxSpareThreads="75" 
                enableLookups="true" 
                disableUploadTimeout="true"
                acceptCount="100" 
                debug="0" 
                scheme="https" 
                secure="true"
                clientAuth="false" 
                sslProtocol="TLS"
                keystoreFile="/webapps/ROOT/myapp.keystore.bin"
                keystorePass="lalala" />

一段$CATALINA_HOME/webapps/ROOT/WEB-INF/web.xml:

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>secured_postbacks</web-resource-name>
            <url-pattern>/securedUrl</url-pattern>
        </web-resource-collection>

        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
      </security-constraint>

</web-app>

答案1

HTTP 可以在端口 443 上顺利运行。HTTPS 不是 HTTP - 它是通过 TLS 或 SSL 的 HTTP - 并且它可以在端口 80 上顺利运行。

它们根本不一样:http://本地主机:443/securedUrlhttps://localhost/securedUrl不要指向同一资源。

相关内容