redirectPort do Tomcat em server.xml: configuração HTTPS explicada
Data de Publicação:
Atualizado:
Artigos > redirectPort do Tomcat em server.xml: configuração HTTPS explicada
status 2026 e uso seguro
Conclusão: redirectPort informa a um conector Tomcat não-TLS para onde redirecionar uma solicitação quando a restrição de segurança do aplicativo Web implantado exigir um transporte confidencial. Ele não cria o conector TLS, não força HTTPS para cada solicitação nem substitui a política de redirecionamento de proxy de borda.
O que você aprenderá
- Como
<transport-guarantee>CONFIDENTIAL</transport-guarantee>ativa o redirecionamento gerenciado por contêiner. - Por que a porta de destino deve corresponder a um conector HTTPS funcional ou a uma topologia de proxy projetada corretamente.
- Como o TLS direto do Tomcat difere da terminação TLS no Apache HTTP Server ou outro proxy.
A quem se destina: administradores da Web Java que analisam as configurações de restrição de segurança do conector Tomcat e do aplicativo.
Atualização para 2026: O exemplo do Tomcat 9 abaixo permanece conceitual, mas os atributos do conector e a manipulação do proxy devem corresponder à sua família Tomcat suportada. Evite loops de redirecionamento e esquemas errados configurando deliberadamente cabeçalhos de proxy confiáveis.
Nota de segurança: os comandos e exemplos de configuração do artigo original não foram novamente executados num ambiente de produção atual. Antes de os aplicar, confirme as versões suportadas, as cópias de segurança, os controlos de acesso e o procedimento de reversão num ambiente de teste isolado.
Fontes primárias oficiais
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.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Tabela de Conteúdos
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
<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.
~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.