2013-04-08 4 views
8

Sto tentando di creare una connessione client a un sito interno ssl che non dispone di un certificato e deve ignorare il proxy.Selezione di SSL_VERIFY_NONE per SSL_verify_mode

io sono in grado di bypassare il proxy, e io sono in grado di connettersi al sito e creare una connessione client, però, sto ottenendo questo brutto avvertimento:

******************************************************************* 
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. 
******************************************************************* 

a C:/strawberry/perl/site/lib/LWP/Protocol/http.pm line 31

My Code:

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

C'è qualcosa in quell'avvertenza che non capisci? – TLP

+0

Non è chiaro quale sia il titolo del tuo post con il resto della tua domanda. Forse potresti spiegare cosa pensi che sia la connessione? – mob

risposta

13

Questo messaggio proviene da IO :: Socket :: SSL e si riferisce alla costante SSL_VERIFY_NONE che esporta anziché alla stringa 'SSL_VERIFY_NONE'.

In secondo luogo, ssl_opts è un argomento del costruttore LWP :: UserAgent, non di RPC :: XML :: Client.

Prova:

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

Grazie, questo ha eliminato l'avviso durante la creazione della connessione Client., –

+0

Ora che ho creato il client $, ho bisogno di passare richieste. come [my $ session = $ client-> simple_request ('login', 1, 0, $ username, $ password); ] Sto ancora ricevendo l'errore per questa affermazione. Come faccio a passare il ssl_opts a ogni richiesta successiva? –

+0

hum, utilizza l'oggetto UserAgent creato nel costruttore e al quale tali flag sono stati passati come ci si aspetterebbe. Non sono sicuro di quale sia il messaggio proveniente da – ikegami

2

Nuova versione Credo che si dovrebbe impostare a 0 o 1. Penso che questo è stato un errore:

500 SSL_verify_mode must be a number and not a string 

Da:

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

Per :

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