Το WSS μέσω Squid δεν είναι το ίδιο με ένα απλό upgrade WebSocket
Διαχωρίστε τα κρυπτογραφημένα WebSocket μέσα στο CONNECT από τη διαχείριση απλού HTTP Upgrade σε έναν forward proxy.
Βλέπει το Squid ένα αίτημα HTTP Upgrade ή μόνο μια σήραγγα που μεταφέρει κρυπτογραφημένη κίνηση; Αυτό καθορίζει αν οι έλεγχοι HTTP Upgrade του αντιμετωπίζουν την αποτυχία.
| Συνήθης διαδρομή ρητού proxy | Τι συναντά το Squid |
|---|---|
wss:// | Συνήθως CONNECT, ακολουθούμενο από TLS προορισμού που μεταφέρει τη χειραψία WebSocket |
ws:// | Ένα αίτημα HTTP Upgrade σε απλό κείμενο που ο proxy μπορεί να επεξεργαστεί |
Ο έλεγχος upgrade του Squid αφορά τα αιτήματα που επεξεργάζεται. Δεν αποκαλύπτει κρυπτογραφημένες κεφαλίδες HTTP μέσα σε μια συνήθη αδιαφανή σήραγγα WSS. Η υποκλοπή TLS ή άλλη ειδική επεξεργασία proxy αλλάζει την ορατότητα και μπορεί να επιβάλει δικές της απαιτήσεις συμβατότητας.
Για WSS, βρείτε πού σταματά η ακολουθία: σύνδεση με τον proxy, αποδεκτό CONNECT, επαληθευμένο TLS, μετά η χειραψία της εφαρμογής. Η απόρριψη πριν από το TLS είναι διαφορετική αποτυχία από ένα απορριφθέν αίτημα Upgrade απλού κειμένου.
Αν χρειάζεται αλλαγή πολιτικής upgrade, χρησιμοποιήστε την οδηγία για την εγκατεστημένη έκδοση του Squid και επιτρέψτε ειδικά την απαιτούμενη συμπεριφορά. Η επιτρεπόμενη χρήση όλων των πρωτοκόλλων upgrade διευρύνει την πολιτική πέρα από τη συγκεκριμένη εφαρμογή.
Ένα επιτυχές αίτημα σελίδας HTTPS καθιερώνει μόνο μέρος της διαδρομής. Η μακρόχρονη κίνηση WebSocket μπορεί ακόμη να αποτύχει λόγω απαιτήσεων εφαρμογής, διάρκειας ζωής σύνδεσης ή περιορισμών ενδιάμεσων, ακόμη και για το ίδιο όνομα κεντρικού υπολογιστή.