Tomcat redirectPort: HTTPS-begränsningar och connectors


Datum för offentliggörande:

Uppdaterad:


Tekniska artiklar > Tomcat redirectPort: HTTPS-begränsningar och connectors

2026 status och säker användning

Slutsats: redirectPort talar om för en icke-TLS Tomcat-anslutare vart den ska omdirigera en begäran när den distribuerade webbapplikationens säkerhetsbegränsning kräver en konfidentiell transport. Den skapar inte TLS-anslutningen, tvingar inte fram HTTPS för varje begäran eller ersätter edge-proxy-omdirigeringspolicy.

Vad du kommer att lära dig

  • Hur <transport-guarantee>CONFIDENTIAL</transport-guarantee> aktiverar containerhanterad omdirigering.
  • Varför målporten måste motsvara en fungerande HTTPS-anslutning eller korrekt utformad proxytopologi.
  • Hur direkt Tomcat TLS skiljer sig från TLS-avslutning på Apache HTTP-server eller annan proxy.

Vem detta är till för: Java-webbadministratörer som granskar inställningarna för Tomcat-anslutningen och programsäkerhetsbegränsningar.

2026-kontext: Tomcat 9-exemplet nedan förblir konceptuellt, men anslutningsattribut och proxyhantering måste matcha din Tomcat-familj som stöds. Undvik omdirigeringsslingor och felaktiga scheman genom att konfigurera betrodda proxyhuvuden medvetet.

Säkerhetsanmärkning: Kommandona och konfigurationsexemplen i den ursprungliga artikeln har inte körts om i en aktuell produktionsmiljö. Verifiera versioner som stöds, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan du använder dem.

Viktiga officiella källor

Översikt.

När jag tittade på portinställningen i Tomcats server.xml-konfiguration fanns det en inställning som hette "redirectPort", men jag kunde inte komma på vad den inställningen var när jag googlade, så jag slog upp den.

Följande inställningar.

server.xml


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

Innehållsförteckning

  1. Vad är redirectPort?
  2. sammanfattning

1. Vad är redirectPort?

Det verkar vara en inställning som omdirigerar dig när du öppnar en sida som anger att SSL krävs.

Om konfigurationsvärdena i server.xml var

server.xml


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

Om URL:n "http://hoge:8080/hoge.html" nås verkar det som om den omdirigerar användaren till URL:n "https://hoge:8443/hoge.html".

Kravet på SSL anges i web.xml: elementet <transport-guarantee> ska ha värdet CONFIDENTIAL. Lägg till följande konfiguration i filen.

web.xml


~förkortning~
    <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>

Eftersom url-mönstret är "/" gör den här inställningen att alla URL:er och omdirigeringar kräver SSL. Om SSL inte anges som obligatoriskt är det ett konfigurationsvärde som inte används. Även om "redirectPort="8443" är inställt i standardvärdet för Tomcat, verkar inställningen för att aktivera port 8443 i sig själv vara ogiltig med standardvärdet för Tomcat, så det kan finnas många personer för vilka "redirectPort="8443" är inställt utan att de är medvetna om det. Jag tror att det finns många som inte har aktiverat 8443-porten för omdirigeringsdestinationen.

1-1. grund

Vi skulle vilja beskriva grunden för dessa slutsatser. På Tomcat-sidan står följande.

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

Poängen är "åtkomst till en sida med säkerhetsbegränsningar som anger att SSL krävs, i enlighet med servletspecifikationen". Detta är inställningen i web.xml som du just har konfigurerat. Poängen är att SSL-kravet är en servletspecifikation, och den verkar omdirigeras när den tillämpas.

2. sammanfattning

I det här avsnittet beskrivs inställningarna för redirectPort i Tomcats server.xml. Se detta när du ställer in redirectPort.

Tack för att du tittade på till slutet.