¿Cuál es la configuración de redirectPort en el server.xml de Tomcat?


Fecha de publicación:2 de enero de 2021.



INFOMARTION > ¿Cuál es la configuración de redirectPort en el server.xml de Tomcat?

Resumen.

Cuando miré la configuración del puerto en el server.xml de Tomcat, había un ajuste llamado 'redirectPort', pero no pude averiguar qué era este ajuste cuando lo busqué en Google, así que lo busqué.

Los siguientes ajustes.

server.xml


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

Índice de contenidos

  1. ¿Qué es redirectPort?
  2. resumen

1. ¿Qué es redirectPort?

Resulta que parece ser una configuración que te redirige cuando accedes a una página que especifica que se requiere SSL.

Si los valores de configuración del servidor.xml fueron

server.xml


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

Si se accede a la URL "http://hoge:8080/hoge.html", parece que se redirige al usuario para que acceda a la URL "https://hoge:8443/hoge.html".

El hecho de que SSL sea obligatorio debe definirse en "web.xml".(「<transport-guarantee>CONFIDENTIAL</transport-guarantee>」)Cuando se configura, el SSL es obligatorio. Incluya la siguiente información en web.xml.

web.xml


~abreviatura~
    <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>

Como el patrón de url es "/", esta configuración hace que todas las URLs requieran SSL y redirecciones. Si SSL no se especifica como obligatorio, es un valor de configuración que no se utiliza. Aunque "redirectPort="8443" está configurado en el valor por defecto de Tomcat, la configuración para activar el puerto 8443 en sí parece no ser válida con el valor por defecto de Tomcat, por lo que puede haber muchas personas para las que "redirectPort="8443"" está configurado sin saberlo pero Creo que hay mucha gente para la que el puerto 8443 del destino de redirección no está activado.

1-1. base

Nos gustaría describir la base de las conclusiones anteriores. La página de Tomcat dice lo siguiente.

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.」

Se trata de "acceder a una página con restricciones de seguridad que especifiquen que se requiere SSL, tal y como exige la especificación del servlet". Esta es la configuración del web.xml que acabas de configurar. La cuestión es que el requisito de SSL es una especificación del servlet, y parece que se redirige cuando se aplica.

2. resumen

Esta sección describe la configuración de redirectPort en el server.xml de Tomcat. Por favor, consulte esto cuando configure el redirectPort.

Gracias por mirar hasta el final.