Warstwy za żądaniem HTTPS Mechanize przez proxy
Zobacz, jak Mechanize, moduł protokołu HTTPS LWP i backend SSL współpracują, aby kierować, tunelować i weryfikować jedno żądanie HTTPS.
Ustaw trasę na obiekcie Mechanize przed pobraniem:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Użyj zamierzonego nasłuchiwacza HTTP z przykładu; dla dozwolonych żądań do celów publicznych kandydaci znajdują się na liście proxy HTTP. Tablica nazywa schematy docelowe. Punkt końcowy http:// zapewnia zwykłą trasę CONNECT dla HTTPS: HTTP do proxy, tunel do celu, następnie TLS celu. Jeśli wdrożenie zamiast tego używa ustawień środowiska, $mech->env_proxy jest alternatywą; zaimportowanie ich później może zmienić trasę przypisaną w kodzie.
Mechanize dziedziczy obsługę sieci LWP::UserAgent, zamiast zapewniać osobny silnik proxy HTTPS:
- Mechanize zapewnia linki, formularze i zachowanie bieżącej strony.
- LWP::UserAgent i jego transport HTTP wybierają trasę i organizują CONNECT.
- LWP::Protocol::https zapewnia obsługę HTTPS i aktualizuje połączenie.
- Net::HTTPS ze swoim backendem SSL zapewnia gniazdo obsługujące TLS, zwykle IO::Socket::SSL w nowoczesnych konfiguracjach.
Zainstalowany backend SSL sam nie wybiera proxy. Zachowaj oryginalną nazwę hosta HTTPS w URL: akceptacja CONNECT nie weryfikuje certyfikatu tej witryny.
Podczas konserwacji starych komponentów rozróżnij te granice. libwww-perl 6.06 i dystrybuowany osobno LWP::Protocol::https 6.06 wprowadziły skoordynowane poprawki dla zwykłego HTTP CONNECT. Sama wersja UserAgent nie identyfikuje modułu HTTPS. LWP::Protocol::https 6.15 dodał poprawkę dla punktów końcowych proxy z TLS, których schemat https:// dodaje TLS do proxy przed TLS celu.
Starsze konfiguracje Net::SSL/Crypt::SSLeay mogą zamiast tego używać udokumentowanego mechanizmu środowiskowego HTTPS_PROXY tego backendu. Nie stosuj jego receptury do nowoczesnej ścieżki IO::Socket::SSL, gdzie LWP odpowiada za routing.
Użyj pierwszego nieudanego etapu do wyboru komponentu: brakujący program obsługi HTTPS dotyczy modułu protokołu; odrzucony CONNECT dotyczy trasy, danych uwierzytelniających lub polityki; błąd certyfikatu po tunelu dotyczy tożsamości i zaufania celu. Zachowaj weryfikację podczas zmiany komponentu, który potwierdzają te dowody.