Les capes darrere d'una sol·licitud HTTPS de Mechanize a través d'un proxy
Descobriu com Mechanize, el mòdul de protocol HTTPS de LWP i el backend SSL cooperen per encaminar, tunelar i verificar una sol·licitud HTTPS.
Establiu la ruta a l'objecte Mechanize abans d'obtenir:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);Utilitzeu l'oient HTTP previst a l'exemple; per a sol·licituds permeses a destinacions públiques, els candidats són a la llista de proxys HTTP. La matriu anomena els esquemes de destinació. El punt final http:// proporciona una ruta CONNECT ordinària per a HTTPS: HTTP cap al proxy, túnel cap a la destinació i després TLS de la destinació. Si el desplegament utilitza en canvi la configuració d'entorn, $mech->env_proxy és l'alternativa; importar-les després pot canviar una ruta assignada al codi.
Mechanize hereta la xarxa de LWP::UserAgent en lloc de proporcionar un motor de proxy HTTPS separat:
- Mechanize proporciona enllaços, formularis i el comportament de la pàgina actual.
- LWP::UserAgent i el seu transport HTTP seleccionen la ruta i organitzen el CONNECT.
- LWP::Protocol::https proporciona el tractament HTTPS i millora la connexió.
- Net::HTTPS amb el seu backend SSL proporciona un sòcol compatible amb TLS, normalment IO::Socket::SSL en configuracions modernes.
Un backend SSL instal·lat no selecciona cap proxy per si mateix. Manteniu el nom d'amfitrió HTTPS original a l'URL: l'acceptació del CONNECT no verifica el certificat d'aquell lloc.
En mantenir components antics, distingiu aquestes fronteres. libwww-perl 6.06 i LWP::Protocol::https 6.06 distribuït per separat van introduir correccions coordinades per al CONNECT HTTP normal. La versió d'UserAgent per si sola no identifica el mòdul HTTPS. LWP::Protocol::https 6.15 va afegir una correcció per als punts finals de proxy amb TLS, l'esquema https:// dels quals afegeix TLS al proxy abans del TLS de la destinació.
Les configuracions antigues de Net::SSL/Crypt::SSLeay poden utilitzar en canvi el mecanisme d'entorn HTTPS_PROXY documentat d'aquell backend. No apliqueu la seva recepta a la ruta moderna IO::Socket::SSL, on LWP s'encarrega de l'encaminament.
Utilitzeu la primera etapa fallida per triar el component: un gestor HTTPS absent afecta el mòdul de protocol; un CONNECT rebutjat afecta la ruta, les credencials o la política; un error de certificat després del túnel afecta la identitat de la destinació i la confiança. Manteniu la verificació mentre canvieu el component que aquesta evidència recolza.