Τα επίπεδα πίσω από ένα αίτημα HTTPS του Mechanize μέσω διακομιστή μεσολάβησης
Δείτε πώς το Mechanize, η μονάδα πρωτοκόλλου HTTPS του LWP και το SSL backend συνεργάζονται για τη δρομολόγηση, τη σήραγγα και την επαλήθευση ενός αιτήματος HTTPS.
Ορίστε τη διαδρομή στο αντικείμενο Mechanize πριν από τη λήψη:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);Χρησιμοποιήστε τον προβλεπόμενο ακροατή HTTP στο παράδειγμα· για επιτρεπόμενα αιτήματα προς δημόσιους στόχους, οι υποψήφιοι βρίσκονται στη λίστα διακομιστών μεσολάβησης HTTP. Ο πίνακας ονομάζει τα σχήματα προορισμού. Το τελικό σημείο http:// παρέχει μια συνήθη διαδρομή CONNECT για HTTPS: HTTP προς τον διακομιστή μεσολάβησης, σήραγγα προς τον στόχο, έπειτα TLS του στόχου. Αν η ανάπτυξη χρησιμοποιεί αντ' αυτού ρυθμίσεις περιβάλλοντος, το $mech->env_proxy είναι η εναλλακτική· η εισαγωγή τους αργότερα μπορεί να αλλάξει διαδρομή που έχει ανατεθεί στον κώδικα.
Το Mechanize κληρονομεί το δίκτυο του LWP::UserAgent αντί να παρέχει ξεχωριστή μηχανή μεσολάβησης HTTPS:
- Το Mechanize παρέχει συνδέσμους, φόρμες και συμπεριφορά τρέχουσας σελίδας.
- Το LWP::UserAgent και η μεταφορά HTTP του επιλέγουν τη διαδρομή και οργανώνουν το CONNECT.
- Το LWP::Protocol::https παρέχει χειρισμό HTTPS και αναβαθμίζει τη σύνδεση.
- Το Net::HTTPS με το SSL backend του παρέχει υποδοχή με δυνατότητα TLS, συνήθως IO::Socket::SSL σε σύγχρονες ρυθμίσεις.
Ένα εγκατεστημένο SSL backend δεν επιλέγει από μόνο του μεσολαβητή. Κρατήστε το αρχικό όνομα κεντρικού υπολογιστή HTTPS στη διεύθυνση URL: η αποδοχή CONNECT δεν επαληθεύει το πιστοποιητικό αυτού του ιστότοπου.
Κατά τη συντήρηση παλιών στοιχείων, διακρίνετε αυτά τα όρια. Το libwww-perl 6.06 και το χωριστά διανεμόμενο LWP::Protocol::https 6.06 εισήγαγαν συντονισμένες διορθώσεις για το κανονικό HTTP CONNECT. Μόνη η έκδοση UserAgent δεν προσδιορίζει τη μονάδα HTTPS. Το LWP::Protocol::https 6.15 πρόσθεσε διόρθωση για τελικά σημεία μεσολάβησης με ενεργό TLS, των οποίων το σχήμα https:// προσθέτει TLS στον μεσολαβητή πριν από το TLS του στόχου.
Παλαιότερες ρυθμίσεις Net::SSL/Crypt::SSLeay μπορούν αντ' αυτού να χρησιμοποιήσουν τον τεκμηριωμένο μηχανισμό περιβάλλοντος HTTPS_PROXY αυτού του backend. Μην εφαρμόζετε τη συνταγή του στη σύγχρονη διαδρομή IO::Socket::SSL, όπου το LWP κατέχει τη δρομολόγηση.
Χρησιμοποιήστε το πρώτο στάδιο που απέτυχε για να επιλέξετε το στοιχείο: ένας απόν χειριστής HTTPS αφορά τη μονάδα πρωτοκόλλου· ένα απορριφθέν CONNECT αφορά διαδρομή, διαπιστευτήρια ή πολιτική· ένα σφάλμα πιστοποιητικού μετά τη σήραγγα αφορά την ταυτότητα και την εμπιστοσύνη του προορισμού. Διατηρήστε την επαλήθευση όσο αλλάζετε το στοιχείο που στηρίζει αυτή η ένδειξη.