Sluoksniai, esantys už per proxy einančios Mechanize HTTPS užklausos
Pažiūrėkite, kaip Mechanize, LWP HTTPS protokolo modulis ir SSL backend bendradarbiauja maršrutizuojant, tuneliuojant ir tikrinant vieną HTTPS užklausą.
Nustatykite maršrutą Mechanize objekte prieš gaunant:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Naudokite pavyzdyje numatytą HTTP klausytuvą; leidžiamiems užklausų į viešuosius tikslus kandidatai yra HTTP proxy sąraše. Masyvas įvardija tikslo schemas. http:// galinis taškas suteikia įprastą CONNECT maršrutą HTTPS: HTTP į proxy, tunelis į tikslą, tada tikslo TLS. Jei diegimas vietoj to naudoja aplinkos nustatymus, $mech->env_proxy yra alternatyva; jų importavimas vėliau gali pakeisti kode priskirtą maršrutą.
Mechanize paveldi LWP::UserAgent tinklo funkcijas, o ne teikia atskirą HTTPS proxy variklį:
- Mechanize teikia nuorodas, formas ir dabartinio puslapio elgseną.
- LWP::UserAgent ir jo HTTP transportas parenka maršrutą ir organizuoja CONNECT.
- LWP::Protocol::https teikia HTTPS apdorojimą ir atnaujina ryšį.
- Net::HTTPS su savo SSL backend suteikia TLS pajėgų lizdą, šiuolaikinėse konfigūracijose paprastai IO::Socket::SSL.
Įdiegtas SSL backend pats neparenka proxy. Išsaugokite pradinį HTTPS hosto pavadinimą URL: CONNECT priėmimas netikrina tos svetainės sertifikato.
Prižiūrėdami senus komponentus, atskirkite šias ribas. libwww-perl 6.06 ir atskirai platinamas LWP::Protocol::https 6.06 įvedė suderintus įprasto HTTP CONNECT pataisymus. Vien UserAgent versija neatpažįsta HTTPS modulio. LWP::Protocol::https 6.15 pridėjo pataisymą TLS palaikomiems proxy galiniams taškams, kurių https:// schema prideda TLS proxy prieš tikslo TLS.
Senesnės Net::SSL/Crypt::SSLeay konfigūracijos vietoj to gali naudoti dokumentuotą to backend HTTPS_PROXY aplinkos mechanizmą. Netaikykite jo recepto šiuolaikiniam IO::Socket::SSL keliui, kuriame LWP valdo maršrutizavimą.
Naudokite pirmą nepavykusį etapą komponentui pasirinkti: trūkstamas HTTPS apdorotuvas susijęs su protokolo moduliu; atmestas CONNECT susijęs su maršrutu, kredencialais ar politika; sertifikato klaida po tunelio susijusi su tikslo tapatumu ir pasitikėjimu. Išsaugokite tikrinimą keisdami komponentą, kurį palaiko tie įrodymai.