Vrstvy za požadavkem HTTPS přes proxy v Mechanize
Podívejte se, jak Mechanize, modul protokolu HTTPS z LWP a backend SSL spolupracují při směrování, tunelování a ověřování jednoho požadavku HTTPS.
Nastavte trasu na objektu Mechanize před načtením:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);V příkladu použijte zamýšlený HTTP listener; pro povolené požadavky na veřejné cíle jsou kandidáti v seznamu HTTP proxy. Pole pojmenovává schémata cíle. Koncový bod http:// poskytuje běžnou trasu CONNECT pro HTTPS: HTTP k proxy, tunel k cíli a poté TLS cíle. Pokud nasazení místo toho používá nastavení prostředí, $mech->env_proxy je alternativou; jejich pozdější import může změnit trasu přiřazenou v kódu.
Mechanize dědí síťové funkce LWP::UserAgent, místo aby poskytoval samostatný engine proxy HTTPS:
- Mechanize poskytuje odkazy, formuláře a chování aktuální stránky.
- LWP::UserAgent a jeho HTTP transport volí trasu a zařizují CONNECT.
- LWP::Protocol::https poskytuje zpracování HTTPS a povyšuje spojení.
- Net::HTTPS se svým backendem SSL poskytuje socket schopný TLS, v moderních konfiguracích obvykle IO::Socket::SSL.
Nainstalovaný backend SSL sám o sobě proxy nevybírá. Ponechte původní název hostitele HTTPS v URL: přijetí CONNECT neověřuje certifikát daného webu.
Při údržbě starých komponent rozlišujte tyto hranice. libwww-perl 6.06 a samostatně distribuovaný LWP::Protocol::https 6.06 zavedly koordinované opravy pro běžný HTTP CONNECT. Samotná verze UserAgent modul HTTPS neidentifikuje. LWP::Protocol::https 6.15 přidal opravu pro koncové body proxy s povoleným TLS, jejichž schéma https:// přidává TLS k proxy před TLS cíle.
Starší konfigurace Net::SSL/Crypt::SSLeay mohou místo toho použít dokumentovaný mechanismus prostředí HTTPS_PROXY tohoto backendu. Neaplikujte jeho recept na moderní cestu IO::Socket::SSL, kde směrování vlastní LWP.
Použijte první neúspěšnou fázi k výběru komponenty: chybějící obsluha HTTPS se týká modulu protokolu; odmítnutý CONNECT se týká trasy, přihlašovacích údajů nebo zásady; chyba certifikátu po tunelu se týká identity cíle a důvěry. Zachovejte ověřování, dokud měníte komponentu, kterou tento důkaz podporuje.