Прокси арқылы өтетін Mechanize HTTPS сұранысының артындағы қабаттар
Mechanize, LWP-тің HTTPS протокол модулі және SSL backend бір HTTPS сұранысын маршруттау, туннельдеу және тексеру үшін қалай бірлесетінін қараңыз.
Механизенің нысанында маршрутты алу алдында орнатыңыз:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Мысалдағы көзделген HTTP тыңдаушысын пайдаланыңыз; рұқсат етілген жалпыға ортақ мақсаттарға сұраныстар үшін үміткерлер HTTP прокси тізімінде. Массив мақсатты схемаларды атайды. http:// шеткі нүктесі HTTPS үшін кәдімгі CONNECT маршрутын береді: проксиге HTTP, мақсатқа туннель, содан кейін мақсаттың TLS. Егер орналастыру оның орнына орта параметрлерін пайдаланса, $mech->env_proxy балама болып табылады; оларды кейінірек импорттау кодта тағайындалған маршрутты өзгертуі мүмкін.
Mechanize бөлек HTTPS прокси қозғалтқышын ұсынудың орнына LWP::UserAgent желілік мүмкіндіктерін мұралайды:
- Mechanize сілтемелерді, пішіндерді және ағымдағы беттің әрекетін ұсынады.
- LWP::UserAgent және оның HTTP тасымалдауы маршрутты таңдап, CONNECT ұйымдастырады.
- LWP::Protocol::https HTTPS өңдеуін қамтамасыз етеді және қосылымды жаңартады.
- Net::HTTPS өзінің SSL backend-ымен TLS мүмкіндігі бар сокетті ұсынады, қазіргі конфигурацияларда әдетте IO::Socket::SSL.
Орнатылған SSL backend өздігінен прокси таңдамайды. Түпнұсқа 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 конфигурациялары оның орнына сол backend-тың құжатталған HTTPS_PROXY орта механизмін пайдалана алады. Оның рецептін LWP маршруттауды иеленетін қазіргі IO::Socket::SSL жолына қолданбаңыз.
Компонентті таңдау үшін бірінші сәтсіз кезеңді пайдаланыңыз: жоқ HTTPS өңдеушісі протокол модуліне қатысты; қабылданбаған CONNECT маршрутқа, тіркелгі деректеріне немесе саясатқа қатысты; туннельден кейінгі сертификат қатесі мақсаттың сәйкестігі мен сеніміне қатысты. Сол дәлел қолдайтын компонентті өзгертіп жатқанда тексеруді сақтаңыз.