Tomcat的server.xml中的redirectPort设置是什么?
出版日期:2021年1月2日。
INFOMARTION > Tomcat的server.xml中的redirectPort设置是什么?
概述。
当我在Tomcat的server.xml配置中查看端口设置时,有一个叫做'redirectPort'的设置,但我在谷歌上搜索时,无法弄清楚这个设置是什么,所以我查了一下。
以下设置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
1. 什么是重定向端口?
事实证明,这似乎是一个设置,当你访问一个指定需要SSL的页面时,会重定向你。
如果server.xml的配置值是
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
如果访问网址 "http://hoge:8080/hoge.html",它似乎会将用户重定向到访问网址 "https://hoge:8443/hoge.html"。
必须在 "web.xml "中定义SSL是强制性的这一事实。(「<transport-guarantee>CONFIDENTIAL</transport-guarantee>」)在设置时,SSL是强制性的。 在web.xml中包括以下信息。
~删节~
<security-constraint>
<web-resource-collection>
<web-resource-name>twx-portal</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
由于url-pattern是"/",这个设置使所有的URL都需要SSL和重定向。 如果SSL没有被指定为强制性的,它就是一个不使用的配置值。 虽然 "redirectPort="8443 "被设置在Tomcat的默认值中,但激活8443端口的设置本身在Tomcat的默认值中似乎是无效的,所以可能有很多人在不知不觉中设置了 "redirectPort="8443",但 我想,有很多人没有激活重定向目的地的8443端口。
1-1. 基础
我们想介绍一下上述结论的依据。 Tomcat页面上写着以下内容。
http://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html
「If you change the port number here, you should also change the value specified for the redirectPort attribute on the non-SSL connector. This allows Tomcat to automatically redirect users who attempt to access a page with a security constraint specifying that SSL is required, as required by the Servlet Specification.」
重点是 "按照servlet规范的要求,访问一个有安全限制的页面,指定需要SSL"。 这是你刚刚配置的web.xml设置。 问题是,SSL要求是一个servlet规范,当它被应用时,似乎被重定向了。
2. 摘要
本节介绍Tomcat的server.xml中的redirectPort设置。 在设置redirectPort时,请参考这一点。
谢谢你一直看到最后。