Ορίστε τη διαδρομή στο αντικείμενο 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 αφορά διαδρομή, διαπιστευτήρια ή πολιτική· ένα σφάλμα πιστοποιητικού μετά τη σήραγγα αφορά την ταυτότητα και την εμπιστοσύνη του προορισμού. Διατηρήστε την επαλήθευση όσο αλλάζετε το στοιχείο που στηρίζει αυτή η ένδειξη.

Σχετικά άρθρα