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


Fecha de publicación:

Actualizado:


Artículos técnicos > ¿Cuál es la configuración de redirectPort en el server.xml de Tomcat?

Estado 2026 y uso seguro

Conclusión: redirectPort le indica a un conector Tomcat que no es TLS dónde redirigir una solicitud cuando la restricción de seguridad de la aplicación web implementada requiere un transporte confidencial. No crea el conector TLS, no fuerza HTTPS para cada solicitud ni reemplaza la política de redireccionamiento de proxy perimetral.

Qué aprenderás

  • Cómo <transport-guarantee>CONFIDENTIAL</transport-guarantee> activa la redirección gestionada por contenedores.
  • Por qué el puerto de destino debe corresponder a un conector HTTPS que funcione o a una topología de proxy diseñada correctamente.
  • En qué se diferencia Tomcat TLS directo de la terminación TLS en el servidor HTTP Apache u otro proxy.

Para quién: administradores web de Java que revisan el conector Tomcat y la configuración de restricciones de seguridad de la aplicación.

Situación en 2026: El siguiente ejemplo de Tomcat 9 sigue siendo conceptual, pero los atributos del conector y el manejo del proxy deben coincidir con la familia Tomcat compatible. Evite bucles de redireccionamiento y esquemas incorrectos configurando deliberadamente encabezados de proxy confiables.

Nota de seguridad: Los comandos y ejemplos de configuración del artículo original no se han vuelto a ejecutar en un entorno de producción actual. Verifique las versiones compatibles, las copias de seguridad, los controles de acceso y los pasos de reversión en un entorno de prueba independiente antes de aplicarlos.

Fuentes primarias oficiales

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" />

Cuando una restricción de seguridad exige transporte confidencial, Tomcat utiliza el redirectPort del conector HTTP para construir el destino HTTPS. Por ejemplo, una solicitud al puerto 8080 puede redirigirse al 8443.

Para ello, web.xml debe declarar «<transport-guarantee>CONFIDENTIAL</transport-guarantee>»:

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>

El patrón «/*» cubre todos los recursos de la aplicación, pero redirectPort solo interviene cuando coincide una restricción CONFIDENTIAL. Que aparezca el puerto 8443 en la configuración no significa que exista un conector TLS escuchando en él.

1-1. base

La documentación de Tomcat fundamenta esta conclusión:

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

redirectPort no obliga por sí solo a usar HTTPS. El puerto de destino debe estar disponible; si un proxy inverso termina TLS, también debe transmitir correctamente a Tomcat el esquema y el puerto externos.

2. Resumen

redirectPort debe coincidir con el punto de entrada HTTPS real y probarse junto con las restricciones de la aplicación o la configuración del proxy inverso.