Прокси аркылуу өткөн Mechanize HTTPS сурамынын артындагы катмарлар
Mechanize, LWP'нин HTTPS протокол модулу жана SSL backend бир HTTPS сурамын маршруттоо, туннелдөө жана текшерүү үчүн кантип кызматташарын көрүңүз.
Алуудан мурун Mechanize объектисинде маршрутту орнотуңуз:
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 маршрутка, эсептик маалыматтарга же саясатка тиешелүү; туннелден кийинки сертификат катасы максаттын инсандыгына жана ишенимине тиешелүү. Ошол далил колдогон компонентти өзгөртүп жатканда текшерүүнү сактаңыз.