2013-04-08 6 views
8

के लिए SSL_VERIFY_NONE का चयन करना मैं एक आंतरिक ssl साइट पर क्लाइंट कनेक्शन बनाने का प्रयास कर रहा हूं जिसमें प्रमाणपत्र नहीं है और प्रॉक्सी को बाईपास करने की आवश्यकता है।SSL_verify_mode

मैं प्रॉक्सी का उपयोग नहीं कर रहा हूँ, और मैं साइट से कनेक्ट और एक ग्राहक कनेक्शन बनाने के लिए कर रहा हूँ, फिर भी, मैं इस बदसूरत चेतावनी हो रही है: C:/strawberry/perl/site/lib/LWP/Protocol/http.pm line 31

पर

******************************************************************* 
Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client 
is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER 
together with SSL_ca_file|SSL_ca_path for verification. 
If you really don't want to verify the certificate and keep the 
connection open to Man-In-The-Middle attacks please set 
SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application. 
******************************************************************* 

मेरे कोड:

use RPC::XML::Client; 
use XML::Simple; 
use LWP::Protocol::https; 

$ENV{NO_PROXY} = '10.*'; 

$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; 

my $server = RPC::XML::Client->new("$vneUrl/api/index.ice", 
           ssl_opts => { SSL_verify_mode => 'SSL_VERIFY_NONE', 
               verify_hostname => 0, 
               SSL_use_cert => 0x00 
               }, 
            ); 
+0

क्या उस चेतावनी में कुछ है जिसे आप समझ में नहीं आ रहे हैं? – TLP

+0

यह स्पष्ट नहीं है कि आपके पोस्ट के शीर्षक को आपके शेष प्रश्न के साथ क्या करना है। शायद आप समझ सकते हैं कि कनेक्शन क्या है? – mob

उत्तर

13

यही संदेश आईओ :: सॉकेट से है :: एसएसएल, और यह निरंतर SSL_VERIFY_NONE को स्ट्रिंग 'SSL_VERIFY_NONE' के बजाय निर्यात करता है।

दूसरा, ssl_opts एलडब्लूपी :: उपयोगकर्ता एजेन्ट के निर्माता का तर्क है, आरपीसी :: एक्सएमएल :: क्लाइंट का नहीं।

प्रयास करें:

use IO::Socket::SSL qw(SSL_VERIFY_NONE); 

RPC::XML::Client->new($uri, 
    useragent => [ 
     ssl_opts => { 
     verify_hostname => 0, 
     SSL_verify_mode => SSL_VERIFY_NONE, 
     }, 
    ], 
); 
+0

धन्यवाद, क्लाइंट कनेक्शन बनाते समय चेतावनी को खत्म कर दिया। –

+0

अब मेरे पास $ क्लाइंट बनाया गया है, मुझे अनुरोध पास करने की आवश्यकता है। जैसे कि [मेरा $ सत्र = $ क्लाइंट-> simple_request ('लॉगिन', 1, 0, $ उपयोगकर्ता नाम, $ पासवर्ड); ] मैं एक बार फिर इस कथन के लिए त्रुटि प्राप्त कर रहा हूँ। मैं प्रत्येक बाद के अनुरोध के लिए ssl_opts को पारित करने के बारे में कैसे जाउंगा? –

+0

हम, यह कन्स्ट्रक्टर में बनाए गए UserAgent ऑब्जेक्ट का उपयोग करता है और जिनके लिए ध्वज पारित किया गया था, वैसे ही उन ध्वजों को पारित किया गया था। यह सुनिश्चित नहीं है कि वह संदेश – ikegami

2

नया संस्करण मुझे विश्वास है 0 या 1. मुझे लगता है कि यह एक बग था आप स्थापित करना चाहिए:

500 SSL_verify_mode must be a number and not a string 
से

:

$useragent->ssl_opts(SSL_verify_mode=>'SSL_VERIFY_NONE'); 

करने के लिए :

$useragent->ssl_opts(SSL_verify_mode=>'0');