Tomcat redirectPort: HTTPS drošības ierobežojumi un savienotāji


Publikācijas datums:

Atjaunināts:


Tehniskie raksti > Tomcat redirectPort: HTTPS drošības ierobežojumi un savienotāji

2026. gada statuss un droša lietošana

Galvenais: redirectPort norāda Tomcat savienotājam bez TLS, uz kuru portu novirzīt pieprasījumu, ja izvietotās tīmekļa lietotnes drošības ierobežojums pieprasa konfidenciālu transportu. Tas neizveido TLS savienotāju, nepiespiež HTTPS katram pieprasījumam un neaizstāj ārējā starpniekservera novirzīšanas politiku.

Ko jūs uzzināsiet

  • <transport-guarantee>CONFIDENTIAL</transport-guarantee> aktivizē konteinera pārvaldītu novirzīšanu.
  • Kāpēc mērķa portam jāatbilst strādājošam HTTPS savienotājam vai pareizi izveidotai starpniekservera topoloģijai.
  • Kā tiešs TLS savienojums ar Tomcat atšķiras no TLS pārtraukšanas Apache HTTP Server vai citā starpniekserverī.

Kam tas paredzēts: Java tīmekļa administratoriem, kuri pārskata Tomcat savienotāju un lietotnes drošības ierobežojumu iestatījumus.

2026. gada konteksts: tālāk sniegtais Tomcat 9 piemērs joprojām paskaidro pamatprincipu, taču savienotāja atribūtiem un starpniekservera apstrādei jāatbilst izmantotajai, atbalstītajai Tomcat saimei. Uzticamās starpniekservera galvenes konfigurējiet apzināti, lai nerastos novirzīšanas cilpas vai nepareiza URL shēma.

Drošības piezīme. Sākotnējā rakstā esošās komandas un konfigurācijas piemēri nav atkārtoti izpildīti pašreizējā ražošanas vidē. Pirms to lietošanas pārbaudiet atbalstītās versijas, dublējumus, piekļuves vadīklas un atcelšanas darbības atsevišķā testa vidē.

Galvenie oficiālie avoti

Pārskats

Tomcat faila server.xml HTTP savienotājā ir atribūts "redirectPort". Šajā rakstā paskaidrots, kad Tomcat šo vērtību izmanto un kādi papildu iestatījumi ir vajadzīgi, lai novirzīšana tiešām darbotos.

Aplūkosim šādu konfigurāciju.

server.xml


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

Satura rādītājs

  1. Kas ir redirectPort?
  2. Kopsavilkums

1. Kas ir redirectPort?

Šis atribūts norāda mērķa portu novirzīšanai, ja pieprasījums atbilst lietotnes drošības ierobežojumam, kas pieprasa konfidenciālu transportu.

Pieņemsim, ka server.xml ir šāda konfigurācija.

server.xml


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

Ja pieprasījums vietnei "http://hoge:8080/hoge.html" atbilst šādam drošības ierobežojumam, Tomcat novirza klientu uz "https://hoge:8443/hoge.html".

Prasību pēc konfidenciāla transporta definē failā web.xml, elementam <transport-guarantee> piešķirot vērtību CONFIDENTIAL. Piemērs:

web.xml


~saīsinājums~
    <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>

Tā kā url-pattern ir "/*", drošības ierobežojums pieprasa konfidenciālu transportu visiem atbilstošajiem lietotnes URL. Šādam pieprasījumam Tomcat izmanto savienotāja redirectPort. Mērķa portam jābūt pieejamam ar TLS savienotāju vai uzticamu starpniekserveri, un URL shēmai un starpniekservera atribūtiem jābūt savstarpēji saskaņotiem. redirectPort pats par sevi TLS portu neaktivizē.

1-1. Pamatojums

Šo darbību apstiprina Tomcat dokumentācija.

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

Citātā aprakstīts pieprasījums, kas atbilst drošības ierobežojumam ar konfidenciāla transporta garantiju, piemēram, iepriekš parādītajam web.xml noteikumam. redirectPort viens pats nepiespiež HTTPS visiem lietotnes pieprasījumiem.

2. Kopsavilkums

Konfigurējiet redirectPort kopā ar TLS savienotāju vai reverso starpniekserveri un pēc tam pārbaudiet tiešos un pārsūtītos pieprasījumus, pārsūtītās galvenes un iespējamas novirzīšanas cilpas.