मेरा लक्षण यह है कि मैं एलडब्ल्यूपी के साथ HTTPS अनुरोधों के साथ प्रॉक्सी का उपयोग नहीं कर सकता। यह एक आम समस्या प्रतीत होती है, और Google पर संकेत और here सभी क्रिप्ट :: SSLeay द्वारा उपयोग के लिए HTTPS_PROXY
पर्यावरण चर सेट करने के लिए कार्य-आसपास सुझाते हैं।मैं एचटीटीपीएस अनुरोधों के लिए क्रिप्ट :: एसएसएलई का उपयोग करने के लिए एलडब्ल्यूपी को कैसे मजबूर करूं?
मेरी विशिष्ट समस्या यह प्रतीत होती है कि LWP :: प्रोटोकॉल :: https क्रिप्ट :: SSLeay के बजाय IO :: सॉकेट :: एसएसएल लोड कर रहा है। मैं क्रिप्ट :: एसएसएलई के उपयोग को इसके बजाय कैसे मजबूर कर सकता हूं?
मेरे कोड:
#!/usr/bin/perl
use strict;
use warnings;
$ENV{HTTPS_PROXY} = 'http://10.0.3.1:3128';
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new('GET','https://www.meritrustcu.org/');
my $res = $ua->request($req);
print "$_\n" for grep { $_ =~ /SSL/ } keys %INC;
और यह उत्पादन है, दिखा रहा है कि क्रिप्ट :: SSLeay इस्तेमाल नहीं किया जा रहा है:
Net/SSLeay.pm
IO/Socket/SSL.pm
/usr/lib/perl5/auto/Net/SSLeay/autosplit.ix
/usr/lib/perl5/auto/Net/SSLeay/set_proxy.al
/usr/lib/perl5/auto/Net/SSLeay/randomize.al
सीधे शब्दों में जोड़ने के लिए कोई स्पष्ट use Crypt::SSLeay
मेरी स्क्रिप्ट के लिए अप्रभावी साबित कर दी है। यह मॉड्यूल लोड करता है, लेकिन यह आईओ :: सॉकेट :: एसएसएल लोड करना जारी रखता है, और इसे HTTPS अनुरोधों के लिए उपयोग करता है।
बिल्कुल सही, धन्यवाद! ऐसा करने से एलडब्ल्यूपी आईओ :: सॉकेट :: एसएसएल को डिफ़ॉल्ट कारण बताता है, जैसा कि आपने अपने [अपने प्रश्न] में स्पर्श किया था (http://stackoverflow.com/questions/74358/how-can-i-get- lwp-to-validate-ssl-server-certificates): 'नेट :: एसएसएल क्रिप्ट-एसएसएलई से होस्टनाम सत्यापित नहीं कर सकता; या तो आईओ :: सॉकेट :: एसएसएल स्थापित करें या PERL_LWP_SSL_VERIFY_HOSTNAME पर्यावरण चर को 0' – Flimzy
पर सेट करके सत्यापन बंद करें LWP 6 ने मेजबान नामों को सत्यापित करने की नीति को बदल दिया है। यदि आप कर सकते हैं, Crypt :: SSLeay के अलावा कुछ और उपयोग करें, जिसमें समर्पित डेवलपर नहीं है (हालांकि सिनन इसे संकलित करने में मदद कर रहा है)। –
@briandfoy: यदि मैं प्रॉक्सी के साथ IO :: सॉकेट :: एसएसएल (या कोई अन्य विकल्प - क्या अन्य विकल्प हैं?) का उपयोग करने का तरीका समझ सकता हूं, तो मैं ऐसा करूँगा। – Flimzy