Qual é a configuração do redirectPort no servidor do Tomcat.xml?


Data de Publicação:2 de Janeiro de 2021.



INFOMARTION > Qual é a configuração do redirectPort no servidor do Tomcat.xml?

Visão geral.

Quando olhei para a configuração da porta no servidor do Tomcat.xml, havia uma configuração chamada 'redirectPort', mas não consegui perceber qual era esta configuração quando a pesquisei no Google, por isso pesquisei-a.

As seguintes configurações.

server.xml


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

Tabela de Conteúdos

  1. O que é o redirectPort?
  2. resumo

1. O que é o redirectPort?

Ao que parece, parece ser uma configuração que o redirecciona quando acede a uma página que especifica que o SSL é necessário.

Se os valores de configuração do server.xml fossem

server.xml


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

Se o URL "http://hoge:8080/hoge.html" for acedido, parece redireccionar o utilizador para aceder ao URL "https://hoge:8443/hoge.html".

O facto de o SSL ser obrigatório deve ser definido em "web.xml".(「<transport-guarantee>CONFIDENTIAL</transport-guarantee>」)Quando configurado, o SSL é obrigatório. Incluir as seguintes informações em web.xml.

web.xml


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

Uma vez que o padrão url é "/", esta configuração faz com que todos os URLs sejam requeridos e redireccionados por SSL. Se o SSL não for especificado como obrigatório, é um valor de configuração que não é utilizado. Embora "redirectPort="8443" esteja definido no valor por defeito de Tomcat, a definição para activar a porta 8443 em si parece ser inválida com o valor por defeito de Tomcat, pelo que pode haver muitas pessoas para quem "redirectPort="8443" está definido sem consciência mas Penso que há muitas pessoas para as quais o porto 8443 do destino redireccionado não está activado.

1-1. base

Gostaríamos de descrever a base para as conclusões acima referidas. A página Tomcat declara o seguinte.

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

O ponto é "aceder a uma página com restrições de segurança especificando que é necessário SSL, como exigido pela especificação do servlet". Esta é a configuração web.xml que acabou de configurar. A questão é que o requisito SSL é uma especificação de servlet, e parece ser redireccionado quando é aplicado.

2. resumo

Esta secção descreve as configurações do redirectPort no servidor.xml de Tomcat. Por favor, consulte isto ao configurar o redirectPort.

Obrigado por ter observado até ao fim.