2013-08-15 8 views
6

मैं डेबियन पर निम्नलिखित पर्ल टुकड़ा चला रहा हूँ पर्ल v5.14.2 और libwww-पर्ल का उपयोग कर v6.04-1LWP HTTPS के माध्यम से कनेक्ट करने के लिए मना कर दिया

my $ua = LWP::UserAgent->new; 
my $req = HTTP::Request->new("GET", "https://google.com/"); 
my $rep = $ua->request($req); 
print $rep->status_line; 

यह तुरन्त रिटर्न "500 से कनेक्ट नहीं कर google.com:443 "। मैंने बिना किसी सफलता के LWP::Simple, Net::SSLeay, Crypt::SSLeay, आदि का उपयोग करने का प्रयास किया है।

विचित्र रूप से पर्याप्त, एक ही कोड को निष्पादित करना उसी डेबियन सिस्टम पर ठीक उसी पर्ल और एलडब्लूपी संस्करणों का काम करता है।

तो मैंने सोचा, अंतर्निहित प्रणाली के साथ कुछ त्रुटि है, लेकिन अन्य अनुप्रयोग - जैसे किसी भी ब्राउज़र के लिए curl - ठीक काम कर रहे हैं।

इसके अलावा, openssl s_client -connect google.com:443 सिस्टम पर Verify return code: 20 (unable to get local issuer certificate) लौटाता है।

क्या किसी ने कभी इस घटना का सामना किया है और इसका कोई समाधान है?

+0

क्या दोनों नेटवर्क एक ही नेटवर्क पर हैं? –

+0

नहीं। मैंने विभिन्न नेटवर्कों, गैर-डेबियन और अन्य पर्ल संस्करणों पर कई प्रणालियों के साथ यह कोशिश की, ऐसा लगता है कि पहली प्रणाली के साथ कोई समस्या है। – Tomas

+2

यह सुनिश्चित करने के लिए कि नेटवर्क यातायात को अवरुद्ध नहीं कर रहा है, यह सुनिश्चित करने के लिए 'wget https: // google.com/'कोशिश करें –

उत्तर

7
इसके बजाय इस बात का

: इस का उपयोग करने के

$ua = LWP::UserAgent->new; 

प्रयास करें:

$ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 }); 
+0

आपके उत्तर के लिए धन्यवाद, लेकिन जैसा कि मैंने प्रश्न में टिप्पणी की है और टिप्पणियां "शून्य पर सेटिंग_hostname सेटिंग को कोई फर्क नहीं पड़ता"। यह सामान्य मामले में मदद कर सकता है, लेकिन इस विशिष्ट में नहीं, जिसे अलग-अलग हल किया गया है जैसा कि आप देख सकते हैं कि क्या आप टिप्पणियों में चर्चा पढ़ते हैं। – Tomas

+0

यह मेरे लिए काम किया। क्यूं कर? मैं आईआईएस 6 का उपयोग कर रहा हूँ। –

1
FYI करें जूझ LWP 500 erors दूसरों के लिए

:

कुछ LWP 500 त्रुटियों जाहिरा तौर पर की एक अन्य प्रकार के कारण होता है एसएसएल समस्या (जिसे verify_hostname सेटिंग के साथ हल नहीं किया गया है)। इसके बजाए, एलडब्लूपी एचटीटीपीएस सर्वर से संचार कर रहा है, लेकिन प्रतिक्रिया एलडब्ल्यूपी की अपेक्षा नहीं करती है।

: क्या 500 त्रुटि मिल रहा है, उत्पादन इस तरह का अपने त्रुटि के साथ पता लगाने की कोशिश किसी के लिए,

my %ssl_options = (SSL_version => 'SSLv3'); 
$ua = LWP::UserAgent->new(ssl_opts => \%ssl_options), 

इसके अलावा: मेरे मामले में, समाधान, SSLv3 मजबूर करने के लिए निम्न तरीकों से था

print $response->as_string; 

मेरी समस्या के लिए>, मेरे $ प्रतिक्रिया उत्पादन as_string (SSLv3 सेट करके किया) शामिल हैं:

"एसएसएल दिनचर्या: SSL23_GET_SERVER_HELLO: SSLv3 चेतावनी अप्रत्याशित संदेश LWP"

मैं यह भी कहूंगा कि मेरा कोड उबंटू के पुराने संस्करण पर वर्षों से ठीक रहा। एक बार मैंने उबंटू को अपग्रेड करने के बाद ही यह समस्या दिखाई दी। मैंने निष्कर्ष निकाला है कि संभवतः कई तरीके हैं कि एलडब्ल्यूपी के नए संस्करण पुराने लोगों से अलग हैं, इसलिए डेवलपर्स सावधान रहें!

आपकी एलडब्लूपी समस्या को हल करने में शुभकामनाएं!

1

मुझे यह समस्या Windows Server 2003 पर Strawberry Perl के साथ थी। त्रुटि 500 ​​IO::Socket::IP के साथ एक समस्या थी।

मॉड्यूल का पुन: स्थापित करना (cpan में, बल IO::Socket::IP स्थापित करें) इस समस्या का समाधान किया।

संबंधित मुद्दे