Perl version is = v5.12.4Perl UserAgent не будет подключаться к серверу TLS1.2
LWP::UserAgent->VERSION = 6.03
#....
# Setup HTTP request
my $req = HTTP::Request->new();
$req->method($cmd);
$req->uri($uri);
$req->header('content-type' => 'application/json');
$req->header('Accept' => 'application/json');
# Setup the call
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0,
SSL_version => 'tlsv12' });
$ua->timeout(60);
# Do the call
my $resp = $ua->request($req);
# ....
код HTTP всегда 500
и я получаю сообщение об ошибке -
"Can't connect to 10.0.0.1:443".
Я пробовал различные SSL_versions строки tlsv12, tslv1. 2, TSLv1, TLSv12, TLS и т. Д. Безрезультатно. Я знаю, что сервер ожидает TLS 1.2. Тот же HTTP-вызов через curl отлично работает.
Дополнительный выход отладки ..
Perl -MIO::Socket::SSL=debug4 powervc_cli.pl -O
DEBUG: .../IO/Socket/SSL.pm:193: set domain to 2
DEBUG: .../IO/Socket/SSL.pm:1545: new ctx 140528264056208
DEBUG: .../IO/Socket/SSL.pm:334: socket not yet connected
DEBUG: .../IO/Socket/SSL.pm:336: socket connected
DEBUG: .../IO/Socket/SSL.pm:349: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:379: set socket to non-blocking to enforce timeout=60
DEBUG: .../IO/Socket/SSL.pm:392: Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:402: ssl handshake in progress
DEBUG: .../IO/Socket/SSL.pm:412: waiting for fd to become ready: SSL wants a read first
DEBUG: .../IO/Socket/SSL.pm:432: socket ready, retrying connect
DEBUG: .../IO/Socket/SSL.pm:392: Net::SSLeay::connect -> 0
DEBUG: .../IO/Socket/SSL.pm:440: connection failed - connect returned 0
DEBUG: .../IO/Socket/SSL.pm:1276: SSL connect attempt failed because of handshake problemserror:00000000:lib(0):func(0):reason(0)
DEBUG: .../IO/Socket/SSL.pm:1276: IO::Socket::INET6 configuration failederror:00000000:lib(0):func(0):reason(0)
DEBUG: .../IO/Socket/SSL.pm:1582: free ctx 140528264056208 open=140528264056208
DEBUG: .../IO/Socket/SSL.pm:1590: OK free ctx 140528264056208
Пожалуйста, помогите! -Eddie
500 - это серверный код. вы посмотрели, что находится в журнале ошибок веб-сервера? –
@MarcB: LWP генерирует такие 500 кодов самостоятельно по ошибкам, чтобы упаковать ошибку в действительный HTTP-ответ. –
гул .... Сообщения LWP обычно длиннее. – ikegami