Слоевете зад HTTPS заявка на Mechanize през прокси
Вижте как Mechanize, модулът за HTTPS протокол на LWP и SSL основата си сътрудничат, за да маршрутизират, тунелират и проверят една HTTPS заявка.
Задайте маршрута върху обекта 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 засяга маршрута, идентификационните данни или политиката; грешка в сертификата след тунела засяга идентичността на местоназначението и доверието. Запазете проверката, докато сменяте компонента, който това доказателство подкрепя.