Tomcat redirectPort: HTTPS saugos apribojimai ir jungtys


Paskelbimo data:

Atnaujinta:


Techniniai straipsniai > Tomcat redirectPort: HTTPS saugos apribojimai ir jungtys

2026 m. būsena ir saugus naudojimas

Išvada: redirectPort nurodo ne TLS „Tomcat“ jungčiai prievadą, į kurį nukreipti užklausą, kai įdiegtos programos saugos apribojimas reikalauja konfidencialaus perdavimo. Šis atributas pats nesukuria TLS jungties, nepriverčia visų užklausų naudoti HTTPS ir nepakeičia išorinio tarpinio serverio nukreipimo politikos.

Ką išmoksite

  • Kaip <transport-guarantee>CONFIDENTIAL</transport-guarantee> suaktyvina konteinerio valdomą peradresavimą.
  • Kodėl tikslinis prievadas turi atitikti veikiančią HTTPS jungtį arba tinkamai suprojektuotą tarpinio serverio topologiją.
  • Kuo tiesioginis Tomcat TLS skiriasi nuo TLS nutraukimo Apache HTTP serveryje ar kitame tarpiniame serveryje.

Kam tai skirta: „Java“ žiniatinklio administratoriams, peržiūrintiems „Tomcat“ jungčių ir programos saugos apribojimų nustatymus.

2026 m. kontekstas: toliau pateiktas „Tomcat 9“ pavyzdys tebėra naudingas sąvokai suprasti, tačiau jungties atributai ir veikimas už tarpinio serverio turi atitikti palaikomą „Tomcat“ leidimų šaką. Patikimų tarpinių serverių antraštes konfigūruokite sąmoningai, kad išvengtumėte nukreipimo ciklų ir neteisingai nustatytos schemos.

Saugos pastaba: pradiniame straipsnyje pateiktos komandos ir konfigūracijos pavyzdžiai nebuvo pakartotinai vykdomi dabartinėje gamybos aplinkoje. Prieš taikydami, patikrinkite palaikomas versijas, atsargines kopijas, prieigos valdiklius ir atšaukimo veiksmus atskiroje bandymo aplinkoje.

Pagrindiniai oficialūs šaltiniai

Apžvalga

„Tomcat“ server.xml HTTP jungtyje dažnai matomas redirectPort atributas. Jo pavadinimas gali klaidinti: tai nėra bendras viso HTTP srauto nukreipimas į HTTPS. Atributas naudojamas tada, kai programos saugos apribojimas reikalauja konfidencialaus transporto.

Numatytame pavyzdyje jis atrodo taip:

server.xml


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

Turinys

  1. Kas yra redirectPort?
  2. Santrauka

1. Kas yra redirectPort?

redirectPort nurodo tikslinį prievadą, kai servletų konteineris turi nukreipti nešifruotą užklausą, nes programos saugos apribojimas reikalauja HTTPS.

Tarkime, server.xml faile nurodyta:

server.xml


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

Jei saugos apribojimas taikomas prašomam ištekliui, pradinė užklausa į http://hoge:8080/hoge.html gauna nukreipimą, o tikslinis adresas yra https://hoge:8443/hoge.html su saugiu transportu.

HTTPS reikalavimas apibrėžiamas programos web.xml faile, transport-guarantee elementui suteikiant reikšmę CONFIDENTIAL. Toliau pateiktame pavyzdyje apribojimas taikomas visai programai.

web.xml


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

Kadangi url-pattern yra /*, konfidencialaus transporto reikalaujama visiems programos URL. Jei prašomam ištekliui toks apribojimas netaikomas, redirectPort nenaudojamas. Svarbu ir tai, kad numatyta redirectPort reikšmė 8443 pati neįjungia HTTPS jungties šiame prievade: turi veikti atitinkamai sukonfigūruota TLS jungtis arba architektūra už tarpinio serverio.

1-1. Dokumentacijos pagrindas

„Tomcat“ TLS konfigūravimo dokumentacijoje paaiškinta:

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

Svarbiausia citatos dalis – nukreipimas taikomas puslapiui, kurio saugos apribojimas pagal servletų specifikaciją reikalauja SSL. Būtent tokį reikalavimą apibrėžia web.xml esantis CONFIDENTIAL transport-guarantee.

2. Santrauka

redirectPort yra ne TLS HTTP jungties tikslinis prievadas, naudojamas tuomet, kai programos saugos apribojimas reikalauja konfidencialaus transporto. Jis nėra bendras HTTPS įjungimo jungiklis.

Konfigūruodami patikrinkite tris dalykus: ar apribojimas tikrai taikomas norimam URL, ar tiksliniame prievade veikia TLS ir ar tarpinio serverio atveju „Tomcat“ teisingai supranta pradinę schemą bei prievadą.