Proksi orqali o'tadigan Mechanize HTTPS so'rovining orqasidagi qatlamlar
Mechanize, LWPning HTTPS protokol moduli va SSL backend bitta HTTPS so'rovini marshrutlash, tunnellash va tekshirish uchun qanday hamkorlik qilishini ko'ring.
Olishdan oldin Mechanize obyektida marshrutni o'rnating:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Misoldagi mo'ljallangan HTTP tinglovchidan foydalaning; ruxsat etilgan ommaviy maqsadlarga so'rovlar uchun nomzodlar HTTP proksi ro'yxatida. Massiv maqsad sxemalarini nomlaydi. http:// oxirgi nuqtasi HTTPS uchun oddiy CONNECT marshrutini beradi: proksiga HTTP, maqsadga tunnel, so'ngra maqsad TLS. Agar joylashtirish buning o'rniga muhit sozlamalaridan foydalansa, $mech->env_proxy muqobildir; ularni keyinroq import qilish kodda belgilangan marshrutni o'zgartirishi mumkin.
Mechanize alohida HTTPS proksi dvigatelini taqdim etish o'rniga LWP::UserAgent tarmog'ini meros oladi:
- Mechanize havolalar, shakllar va joriy sahifa xatti-harakatini taqdim etadi.
- LWP::UserAgent va uning HTTP transporti marshrutni tanlaydi va CONNECTni tashkil qiladi.
- LWP::Protocol::https HTTPS ishlovini taqdim etadi va ulanishni yangilaydi.
- Net::HTTPS o'zining SSL backend bilan TLS qobiliyatli soketni taqdim etadi, zamonaviy konfiguratsiyalarda odatda IO::Socket::SSL.
O'rnatilgan SSL backend o'zi proksi tanlamaydi. Asl HTTPS xost nomini URLda saqlang: CONNECTni qabul qilish o'sha sayt sertifikatini tekshirmaydi.
Eski komponentlarga xizmat ko'rsatishda bu chegaralarni ajrating. libwww-perl 6.06 va alohida tarqatiladigan LWP::Protocol::https 6.06 oddiy HTTP CONNECT uchun muvofiqlashtirilgan tuzatishlarni kiritdi. Faqat UserAgent versiyasi HTTPS modulini aniqlamaydi. LWP::Protocol::https 6.15 TLS yoqilgan proksi oxirgi nuqtalari uchun tuzatish qo'shdi, ularning https:// sxemasi maqsad TLSdan oldin proksiga TLS qo'shadi.
Eski Net::SSL/Crypt::SSLeay konfiguratsiyalari buning o'rniga o'sha backendning hujjatlashtirilgan HTTPS_PROXY muhit mexanizmidan foydalanishi mumkin. Uning retseptini LWP marshrutlashga egalik qiladigan zamonaviy IO::Socket::SSL yo'liga qo'llamang.
Komponentni tanlash uchun birinchi muvaffaqiyatsiz bosqichdan foydalaning: yo'q HTTPS ishlovchisi protokol moduliga tegishli; rad etilgan CONNECT marshrut, hisob ma'lumotlari yoki siyosatga tegishli; tunneldan keyingi sertifikat xatosi maqsadning identifikatori va ishonchiga tegishli. O'sha dalil qo'llab-quvvatlaydigan komponentni almashtirganda tekshiruvni saqlang.