Laga bak ein proxya Mechanize-HTTPS-førespurnad
Sjå korleis Mechanize, HTTPS-protokollmodulen til LWP og SSL-backenden samarbeider om å rute, tunnelere og verifisere ein HTTPS-førespurnad.
Set ruta på Mechanize-objektet før du hentar:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Bruk den tiltenkte HTTP-lyttaren i dømet; for tillatne førespurnader mot offentlege mål er kandidatane i HTTP-proxylista. Matrisa namngjev målskjema. http://-endepunktet gjev ei vanleg CONNECT-rute for HTTPS: HTTP til proxya, tunnel til målet, deretter TLS-en til målet. Viss utrullinga i staden brukar miljøinnstillingar, er $mech->env_proxy alternativet; å importere dei etterpå kan endre ei rute som er tildelt i koden.
Mechanize arvar LWP::UserAgent-nettverking i staden for å tilby ein eigen HTTPS-proxymotor:
- Mechanize leverer lenkjer, skjema og åtferd for gjeldande side.
- LWP::UserAgent og HTTP-transporten vel ruta og ordnar CONNECT.
- LWP::Protocol::https leverer HTTPS-handtering og oppgraderer sambandet.
- Net::HTTPS med SSL-backenden leverer ein TLS-kompatibel socket, vanlegvis IO::Socket::SSL i moderne konfigurasjonar.
Ein installert SSL-backend vel ikkje sjølv ein proxy. Hald det opphavlege HTTPS-vertsnamnet i URL-en: godkjenning av CONNECT verifiserer ikkje sertifikatet til nettstaden.
Når du vedlikeheld gamle komponentar, skil desse grensene. libwww-perl 6.06 og den separat distribuerte LWP::Protocol::https 6.06 innførte koordinerte rettingar for vanleg HTTP CONNECT. Berre UserAgent-versjonen identifiserer ikkje HTTPS-modulen. LWP::Protocol::https 6.15 la til ei retting for TLS-aktiverte proxy-endepunkt, der https://-skjemaet legg TLS til proxya før TLS-en til målet.
Eldre Net::SSL/Crypt::SSLeay-konfigurasjonar kan i staden bruke den dokumenterte HTTPS_PROXY-miljømekanismen til den backenden. Ikkje bruk oppskrifta på den moderne IO::Socket::SSL-bana, der LWP eig rutinga.
Bruk det første mislukka trinnet til å velje komponenten: ein manglande HTTPS-handterar gjeld protokollmodulen; ein avvist CONNECT gjeld rute, påloggingsopplysningar eller policy; ein sertifikatfeil etter tunnelen gjeld identiteten og tilliten til målet. Hald verifiseringa medan du byter komponenten som den dokumentasjonen støttar.