我是 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
连接器设置中定义的连接。