2013-04-08 1 views
8

証明書を持たず、プロキシをバイパスする必要がある内部sslサイトへのクライアント接続を作成しようとしています。SSL_verify_modeのSSL_VERIFY_NONEを選択する

私はプロキシをバイパスすることができるよ、と私は、サイトに接続し、クライアント接続を作成し、しかし、私はこの醜い警告取得していますすることができています: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

メッセージがIO ::ソケットからです:: SSLであり、文字列'SSL_VERIFY_NONE'ではなく、SSL_VERIFY_NONEという定数が参照されます。

第2に、RPC :: XML :: Clientではなく、ssl_optsがLWP :: UserAgentのコンストラクタの引数です。

試してみてください。私は、これはバグだったと思う、私はあなたが0または1 に設定しなければならないと考えてい

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

私は$クライアントを作成したので、私は要求を渡す必要があります。 [my $ session = $ client-> simple_request( 'login'、1、0、$ username、$ password)などのように指定します。 ]私はもう一度このステートメントのエラーを取得しています。後続の各要求にssl_optsを渡す方法は? –

+0

ハムは、コンストラクタで作成されたUserAgentオブジェクトを使用し、そのフラグは期待通りに渡されます。そのメッセージがどこから来ているのか分かりません – ikegami

2

新バージョン:

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'); 
関連する問題