Tomcat http 转 https

Tomcat http 转 https

我是 tomcat 的新手,在这种情况下我可以在我的网站下工作

http://myserver:8080/path/login/login.html

我想使用端口 8443 激活 https

https://myserver:8443/path/login/login.html

我在普通用户下使用tomcat,配置如下服务器.xml, 这网址:8443正在使用我的 ssl 证书并且网址:8080不再工作了。 http 模式不再工作是正常的吗?请问我如何自行重定向到 https ?与著名的集团进入 web.xml ?

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />


<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               compression="on"
               compressionMinSize="2048"
               compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,text/json,application/x-javascript,application/javascript,application/json" />


<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/cert.key"
                         certificateFile="conf/cert.crt"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

非常感谢

答案1

不,所有连接器都应该独立工作。确保在重新启动 Tomcat 之前停止运行 Tomcat 实例,并检查该端口是否未被其他应用程序使用。

还要检查catalina.log启动后的情况,它应该包含每个端口的一条日志消息,如下所示:

04-Dec-2020 19:24:16.658 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
04-Dec-2020 19:24:16.750 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-openssl-apr-8443"]
04-Dec-2020 19:24:16.782 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
04-Dec-2020 19:24:16.825 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [8,729] milliseconds

要将所有 Web 应用程序的所有请求从 HTTP 重定向到 HTTPS,请将此代码段添加到最后一行之前的末尾conf/web.xml(在 CATALINA_BASE 或 CATALINA_HOME 目录中)</web-app>

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

Transport-guarantee 值CONFIDENTIAL意味着与该模式匹配的所有 URL/* 都使用安全连接,即非 SSL 请求将重定向到redirectPort连接器设置中定义的连接。

相关内容