Proxy üzerinden giden bir Mechanize HTTPS isteğinin arkasındaki katmanlar
Mechanize, LWP'nin HTTPS protokol modülü ve SSL arka ucunun tek bir HTTPS isteğini yönlendirmek, tünellemek ve doğrulamak için nasıl işbirliği yaptığını görün.
Getirmeden önce Mechanize nesnesinde rotayı ayarlayın:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
Örnekteki amaçlanan HTTP dinleyicisini kullanın; izin verilen genel hedeflere yönelik istekler için adaylar HTTP proxy listesinde bulunur. Dizi, hedef şemalarını adlandırır. http:// uç noktası HTTPS için sıradan bir CONNECT rotası sağlar: proxy'ye HTTP, hedefe tünel, ardından hedef TLS. Dağıtım bunun yerine ortam ayarlarını kullanıyorsa $mech->env_proxy alternatiftir; bunları sonradan içe aktarmak kodda atanan bir rotayı değiştirebilir.
Mechanize, ayrı bir HTTPS proxy motoru sağlamak yerine LWP::UserAgent ağını devralır:
- Mechanize bağlantıları, formları ve geçerli sayfa davranışını sağlar.
- LWP::UserAgent ve HTTP taşıması rotayı seçer ve CONNECT'i düzenler.
- LWP::Protocol::https HTTPS işlemeyi sağlar ve bağlantıyı yükseltir.
- Net::HTTPS, SSL arka ucuyla TLS yetenekli soketi sağlar, modern yapılandırmalarda genellikle IO::Socket::SSL.
Kurulu bir SSL arka ucu kendi başına proxy seçmez. Özgün HTTPS ana bilgisayar adını URL'de tutun: CONNECT kabulü o sitenin sertifikasını doğrulamaz.
Eski bileşenleri bakımda tutarken bu sınırları ayırt edin. libwww-perl 6.06 ve ayrı dağıtılan LWP::Protocol::https 6.06, normal HTTP CONNECT için eşgüdümlü düzeltmeler getirdi. Yalnızca UserAgent sürümü HTTPS modülünü tanımlamaz. LWP::Protocol::https 6.15, TLS etkin proxy uç noktaları için bir düzeltme ekledi; bunların https:// şeması hedef TLS'den önce proxy'ye TLS ekler.
Daha eski Net::SSL/Crypt::SSLeay yapılandırmaları bunun yerine o arka ucun belgelenmiş HTTPS_PROXY ortam mekanizmasını kullanabilir. Tarifini, yönlendirmenin LWP'ye ait olduğu modern IO::Socket::SSL yoluna uygulamayın.
Bileşeni seçmek için ilk başarısız aşamayı kullanın: eksik HTTPS işleyicisi protokol modülüyle ilgilidir; reddedilen CONNECT rota, kimlik bilgileri veya ilkeyle ilgilidir; tünel sonrası sertifika hatası hedefin kimliği ve güveniyle ilgilidir. Bu kanıtın desteklediği bileşeni değiştirirken doğrulamayı koruyun.