Задайте маршрут на об'єкті Mechanize перед отриманням:

use WWW::Mechanize;

my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
    ['http', 'https'],
    'http://proxy.example.net:8080',
);

Використовуйте передбачуваний HTTP-слухач із прикладу; для дозволених запитів до публічних цілей кандидати містяться в списку HTTP-проксі. Масив називає схеми призначення. Кінцева точка http:// забезпечує звичайний маршрут CONNECT для HTTPS: HTTP до проксі, тунель до цілі, потім TLS цілі. Якщо розгортання натомість використовує змінні середовища, альтернативою є $mech->env_proxy; їх подальший імпорт може змінити маршрут, заданий у коді.

Mechanize успадковує мережеві можливості LWP::UserAgent, а не надає окремий механізм HTTPS-проксі:

  • Mechanize надає посилання, форми та поведінку поточної сторінки.
  • LWP::UserAgent і його HTTP-транспорт вибирають маршрут і організовують CONNECT.
  • LWP::Protocol::https забезпечує обробку HTTPS і оновлює з'єднання.
  • Net::HTTPS зі своїм SSL-бекендом надає сокет із підтримкою TLS, зазвичай IO::Socket::SSL у сучасних конфігураціях.

Встановлений SSL-бекенд сам не вибирає проксі. Зберігайте початкове ім'я HTTPS-хоста в URL: прийняття CONNECT не перевіряє сертифікат цього сайту.

Підтримуючи старі компоненти, розрізняйте ці межі. libwww-perl 6.06 і окремо розповсюджуваний LWP::Protocol::https 6.06 запровадили узгоджені виправлення для звичайного HTTP CONNECT. Лише версія UserAgent не ідентифікує модуль HTTPS. LWP::Protocol::https 6.15 додав виправлення для проксі-ендпоінтів із TLS, чия схема https:// додає TLS до проксі перед TLS цілі.

Старіші конфігурації Net::SSL/Crypt::SSLeay можуть натомість використовувати задокументований механізм середовища HTTPS_PROXY цього бекенду. Не застосовуйте його рецепт до сучасного шляху IO::Socket::SSL, де маршрутизацією володіє LWP.

Використовуйте перший невдалий етап для вибору компонента: відсутній обробник HTTPS стосується модуля протоколу; відхилений CONNECT стосується маршруту, облікових даних або політики; помилка сертифіката після тунелю стосується ідентичності та довіри до цілі. Зберігайте перевірку, змінюючи компонент, який підтверджується цими даними.

Схожі статті