証明書がなく、プロキシをバイパスする必要がある内部ssl
サイトへのクライアント接続を作成しようとしています。
プロキシをバイパスすることができ、サイトに接続してクライアント接続を作成することはできますが、この醜い警告が表示されます。
******************************************************************* 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. *******************************************************************
C:/strawberry/Perl/site/lib/LWP/Protocol/http.pm line 31
私のコード:
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
},
);
そのメッセージはIO :: Socket :: SSLからのものであり、文字列SSL_VERIFY_NONE
ではなく、エクスポートする定数'SSL_VERIFY_NONE'
を参照しています。
次に、ssl_opts
はLWP :: UserAgentのコンストラクターの引数であり、RPC :: XML :: Clientの引数ではありません。
試してください:
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または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');