Επεξήγηση του Tomcat redirectPort: περιορισμοί ασφαλείας HTTPS και συνδέσεις


Δημοσιεύτηκε:

Ενημερώθηκε:


Άρθρα › Επεξήγηση του Tomcat redirectPort: περιορισμοί ασφαλείας HTTPS και συνδέσεις

Κατάσταση το 2026 και ασφαλής χρήση

Συμπέρασμα: redirectPort ενημερώνει έναν σύνδεσμο Tomcat που δεν είναι TLS πού να ανακατευθύνει ένα αίτημα όταν ο περιορισμός ασφαλείας της αναπτυγμένης εφαρμογής Ιστού απαιτεί εμπιστευτική μεταφορά. Δεν δημιουργεί τη σύνδεση TLS, δεν αναγκάζει το HTTPS για κάθε αίτημα ή δεν αντικαθιστά την πολιτική ανακατεύθυνσης του διακομιστή μεσολάβησης άκρων.

Τι θα μάθετε

  • Πώς το <transport-guarantee>CONFIDENTIAL</transport-guarantee> ενεργοποιεί την ανακατεύθυνση που διαχειρίζεται το κοντέινερ.
  • Γιατί η θύρα προορισμού πρέπει να αντιστοιχεί σε λειτουργική σύνδεση HTTPS ή σωστά σχεδιασμένη τοπολογία διακομιστή μεσολάβησης.
  • Πώς διαφέρει το άμεσο Tomcat TLS από τον τερματισμό TLS στον διακομιστή HTTP Apache ή σε άλλο διακομιστή μεσολάβησης.

Σε ποιους απευθύνεται: Οι διαχειριστές ιστού Java εξετάζουν τις ρυθμίσεις περιορισμών ασφαλείας της εφαρμογής σύνδεσης Tomcat και της εφαρμογής.

Ισχύει το 2026: Το παρακάτω παράδειγμα Tomcat 9 παραμένει εννοιολογικό, αλλά τα χαρακτηριστικά σύνδεσης και ο χειρισμός του διακομιστή μεσολάβησης πρέπει να ταιριάζουν με την υποστηριζόμενη οικογένεια Tomcat. Αποφύγετε τους βρόχους ανακατεύθυνσης και τα λανθασμένα σχήματα διαμορφώνοντας σκόπιμα τις κεφαλίδες αξιόπιστων διακομιστή μεσολάβησης.

Σημείωση ασφαλείας: Οι εντολές και τα παραδείγματα ρυθμίσεων του αρχικού άρθρου δεν έχουν εκτελεστεί ξανά σε σύγχρονο περιβάλλον παραγωγής. Πριν από την εφαρμογή, ελέγξτε τις υποστηριζόμενες εκδόσεις, δημιουργήστε αντίγραφα ασφαλείας και προετοιμάστε σχέδιο επαναφοράς σε ξεχωριστό περιβάλλον δοκιμών.

Επίσημες πηγές

Επισκόπηση

Όταν κοίταξα τη ρύθμιση θύρας στη διαμόρφωση server.xml του Tomcat, υπήρχε μια ρύθμιση που ονομάζεται 'redirectPort', αλλά δεν μπορούσα να καταλάβω τι ήταν αυτή η ρύθμιση όταν την έψαξα στο Google, οπότε την έψαξα.

Οι ακόλουθες ρυθμίσεις.

server.xml


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

Περιεχόμενα

  1. Τι είναι το redirectPort;
  2. Σύνοψη

1. Τι είναι το redirectPort;

Όπως αποδεικνύεται, φαίνεται ότι πρόκειται για μια ρύθμιση που σας ανακατευθύνει όταν αποκτάτε πρόσβαση σε μια σελίδα που ορίζει ότι απαιτείται SSL.

Εάν οι τιμές διαμόρφωσης server.xml ήταν

server.xml


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

Εάν προσπελαστεί η διεύθυνση URL "http://hoge:8080/hoge.html", φαίνεται να ανακατευθύνεται ο χρήστης για να προσπελάσει τη διεύθυνση URL "https://hoge:8443/hoge.html".

Το γεγονός ότι το SSL είναι υποχρεωτικό πρέπει να οριστεί στο "web.xml". (“<transport-guarantee>CONFIDENTIAL</transport-guarantee>”)Κατά τη ρύθμιση, το SSL είναι υποχρεωτικό. Συμπεριλάβετε τις ακόλουθες πληροφορίες στο αρχείο web.xml.

web.xml


~σύντμηση~
    <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>

Δεδομένου ότι το url-pattern είναι "/", αυτή η ρύθμιση καθιστά όλες τις διευθύνσεις URL SSL-required και τις ανακατευθύνσεις. Εάν το SSL δεν ορίζεται ως υποχρεωτικό, πρόκειται για μια τιμή διαμόρφωσης που δεν χρησιμοποιείται. Παρόλο που το "redirectPort="8443" έχει οριστεί στην προεπιλεγμένη τιμή του Tomcat, η ρύθμιση για την ενεργοποίηση της ίδιας της θύρας 8443 φαίνεται να είναι άκυρη με την προεπιλεγμένη τιμή του Tomcat, οπότε μπορεί να υπάρχουν πολλοί άνθρωποι για τους οποίους το "redirectPort="8443"" έχει οριστεί χωρίς να το γνωρίζουν, αλλά Νομίζω ότι υπάρχουν πολλοί άνθρωποι για τους οποίους η θύρα 8443 του προορισμού ανακατεύθυνσης δεν είναι ενεργοποιημένη.

1-1. βάση

Θα θέλαμε να περιγράψουμε τη βάση για τα παραπάνω συμπεράσματα. Η σελίδα του Tomcat αναφέρει τα εξής.

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

Το θέμα είναι "η πρόσβαση σε μια σελίδα με περιορισμούς ασφαλείας που καθορίζουν ότι απαιτείται SSL, όπως απαιτείται από την προδιαγραφή servlet". Αυτή είναι η ρύθμιση web.xml που μόλις διαμορφώσατε. Το θέμα είναι ότι η απαίτηση SSL είναι μια προδιαγραφή servlet και φαίνεται να ανακατευθύνεται όταν εφαρμόζεται.

2. περίληψη

Αυτή η ενότητα περιγράφει τις ρυθμίσεις redirectPort στο server.xml του Tomcat. Ανατρέξτε σε αυτό όταν ρυθμίζετε το redirectPort.

Αυτά είναι τα βασικά βήματα και οι περιορισμοί που πρέπει να ληφθούν υπόψη.