Vysvětlení Tomcat redirectPort: HTTPS bezpečnostní omezení a konektory


Publikováno:

Aktualizováno:


Články › Vysvětlení Tomcat redirectPort: HTTPS bezpečnostní omezení a konektory

Stav v roce 2026 a bezpečné použití

Závěr: redirectPort říká konektoru Tomcat bez TLS, kam má přesměrovat požadavek, když bezpečnostní omezení nasazené webové aplikace vyžaduje důvěrný přenos. Nevytváří konektor TLS, nevynucuje HTTPS pro každý požadavek ani nenahrazuje zásady přesměrování edge-proxy.

Co se dozvíte

  • Jak <transport-guarantee>CONFIDENTIAL</transport-guarantee> aktivuje přesměrování spravované kontejnerem.
  • Proč musí cílový port odpovídat funkčnímu konektoru HTTPS nebo správně navržené topologii proxy.
  • Jak se přímé Tomcat TLS liší od ukončení TLS na Apache HTTP Server nebo jiném proxy.

Pro koho je článek určen: Správci webu Java kontrolují nastavení konektoru Tomcat a omezení zabezpečení aplikací.

Aktuální stav v roce 2026: Níže uvedený příklad Tomcat 9 zůstává koncepční, ale atributy konektoru a zpracování proxy musí odpovídat vaší podporované rodině Tomcat. Vyhněte se smyčkám přesměrování a nesprávným schématům tím, že nakonfigurujete důvěryhodné proxy hlavičky záměrně.

Bezpečnostní poznámka: Příkazy a konfigurační příklady z původního článku nebyly znovu spuštěny v současném produkčním prostředí. Před nasazením ověřte podporované verze, vytvořte zálohu a připravte postup návratu v odděleném testovacím prostředí.

Oficiální zdroje

Přehled

Když jsem se podíval na nastavení portu v konfiguraci server.xml Tomcatu, bylo tam nastavení nazvané "redirectPort", ale když jsem to vygooglil, nemohl jsem zjistit, co je to za nastavení, tak jsem to vyhledal.

Následující nastavení.

server.xml


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

Obsah

  1. Co je redirectPort?
  2. Shrnutí

1. Co je redirectPort?

Jak se ukázalo, jde zřejmě o nastavení, které vás přesměruje při přístupu na stránku, na níž je uvedeno, že je vyžadován protokol SSL.

Pokud byly konfigurační hodnoty souboru server.xml

server.xml


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

Pokud dojde k přístupu na adresu URL "http://hoge:8080/hoge.html", zobrazí se přesměrování uživatele na adresu URL "https://hoge:8443/hoge.html".

To, že je protokol SSL povinný, musí být definováno v souboru "web.xml". (“<transport-guarantee>CONFIDENTIAL</transport-guarantee>”)Při nastavení je protokol SSL povinný. Do souboru web.xml uveďte následující informace.

web.xml


~zkrácení~
    <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>

Vzhledem k tomu, že vzor url je "/", toto nastavení způsobí, že všechny adresy URL budou vyžadovat SSL a přesměrování. Pokud není protokol SSL zadán jako povinný, jedná se o konfigurační hodnotu, která se nepoužívá. Ačkoli je ve výchozí hodnotě Tomcatu nastaveno "redirectPort="8443", zdá se, že samotné nastavení aktivace portu 8443 je ve výchozí hodnotě Tomcatu neplatné, takže může existovat mnoho lidí, pro které je "redirectPort="8443"" nastaveno bez vědomí, ale Myslím, že existuje mnoho lidí, pro které není port 8443 cíle přesměrování aktivován.

1-1. základ

Rádi bychom popsali, na základě čeho jsme dospěli k výše uvedeným závěrům. Na stránce Tomcat je uvedeno následující.

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

Jde o "přístup ke stránce s bezpečnostními omezeními, která určují, že je vyžadováno SSL, jak to vyžaduje specifikace servletu". Jedná se o nastavení souboru web.xml, které jste právě nakonfigurovali. Jde o to, že požadavek SSL je specifikací servletu a zdá se, že je při jeho použití přesměrován.

2. shrnutí

Tato část popisuje nastavení redirectPort v souboru server.xml serveru Tomcat. Při nastavování portu redirectPort se řiďte touto informací.

Tím jsou shrnuty hlavní kroky a omezení, která je třeba zohlednit.