Slojevi iza Mechanize HTTPS zahtjeva kroz proxy
Pogledajte kako Mechanize, LWP-ov HTTPS protokolni modul i SSL pozadina sarađuju na usmjeravanju, tuneliranju i provjeri jednog HTTPS zahtjeva.
Postavite rutu na Mechanize objektu prije preuzimanja:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);Koristite namjeravani HTTP listener u primjeru; za dopuštene zahtjeve prema javnim ciljevima kandidati su u listi HTTP proxyja. Niz imenuje odredišne sheme. Krajnja točka http:// pruža običnu CONNECT rutu za HTTPS: HTTP prema proxyju, tunel do cilja, zatim TLS cilja. Ako implementacija umjesto toga koristi postavke okruženja, $mech->env_proxy je alternativa; njihov kasniji uvoz može promijeniti rutu dodijeljenu u kodu.
Mechanize nasljeđuje mrežne mogućnosti LWP::UserAgent umjesto da pruža zasebni motor za HTTPS proxy:
- Mechanize pruža linkove, forme i ponašanje trenutne stranice.
- LWP::UserAgent i njegov HTTP transport biraju rutu i organiziraju CONNECT.
- LWP::Protocol::https pruža obradu HTTPS-a i nadograđuje vezu.
- Net::HTTPS sa svojom SSL pozadinom pruža socket sposoban za TLS, obično IO::Socket::SSL u modernim konfiguracijama.
Instalirana SSL pozadina sama po sebi ne bira proxy. Zadržite izvorno HTTPS ime hosta u URL-u: prihvatanje CONNECT-a ne provjerava certifikat tog sajta.
Kada održavate stare komponente, razlikujte ove granice. libwww-perl 6.06 i odvojeno distribuirani LWP::Protocol::https 6.06 uveli su usklađene ispravke za normalni HTTP CONNECT. Sama verzija UserAgenta ne identificira HTTPS modul. LWP::Protocol::https 6.15 dodao je ispravku za proxy krajnje točke s omogućenim TLS-om, čija shema https:// dodaje TLS proxyju prije TLS-a cilja.
Starije konfiguracije Net::SSL/Crypt::SSLeay mogu umjesto toga koristiti dokumentirani mehanizam okruženja HTTPS_PROXY te pozadine. Ne primjenjujte njegov recept na modernu putanju IO::Socket::SSL, gdje LWP upravlja usmjeravanjem.
Koristite prvu neuspjelu fazu da odaberete komponentu: nedostajući HTTPS obrađivač tiče se protokolnog modula; odbijeni CONNECT tiče se rute, akreditiva ili politike; greška certifikata nakon tunela tiče se identiteta odredišta i povjerenja. Zadržite provjeru dok mijenjate komponentu koju ti dokazi podržavaju.