0
我使用LWP::UserAgent version 6.03
获取网站的地位。错误:500无法连接到foo.com:443(未知errorerror:140773F2:SSL例程:SSL23_GET_SERVER_HELLO:SSLv3)和
my $ua = LWP::UserAgent->new(ssl_opts => {verify_hostname => 0},);
$ua->cookie_jar({});
$ua->agent('Mozilla/5.0');
push @{$ua->requests_redirectable}, 'POST';
push @{$ua->requests_redirectable}, 'GET';
my $url = 'https://foo.com'
$page = $ua->get($url);
print "Error ".$page->status_line."\n";
当我在unix机器上运行此代码时,它给出了LWP模块的以下状态和错误消息。
#status
500 Can't connect to foo.com:443
#error
LWP::Protocol::https::Socket: SSL connect attempt failed with unknown
errorerror:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert
unexpected message at /usr/local/lib/perl5/site_perl/5.8.9/LWP/Protocol/http.pm line 51.
我试图使用回答given to similar question,但它没有解决。需要你的宝贵意见。
跑调试
DEBUG: .../IO/Socket/SSL.pm:193: set domain to 2
DEBUG: .../IO/Socket/SSL.pm:1545: new ctx 74489552
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=180
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 -> -1
DEBUG: .../IO/Socket/SSL.pm:1276: SSL connect attempt failed with unknown errorerror:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message
DEBUG: .../IO/Socket/SSL.pm:398: fatal SSL error: SSL connect attempt failed with unknown errorerror:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message
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 74489552 open=74489552
DEBUG: .../IO/Socket/SSL.pm:1590: OK free ctx 74489552`
请提供您正在使用的依赖模块(可能是IO :: Socket :: SSL)的URL和版本,并且最好使用openssl的版本。你需要一个代理吗? –
IO :: Socket :: SSL-> VERSION: 'Version1.54' –
请使用'perl -MIO :: Socket :: SSL = debug4 app.pl'运行你的代码来启用调试。为了更好地帮助提供OpenSSL版本('perl -MIO :: Socket :: SSL -e'printf'%x \ n“,Net :: SSLeay :: OPENSSL_VERSION_NUMBER()''。除非它失败了所有的URL如果你希望得到帮助,也可以更好地提供目标主机。现在猜测是它与SNI有关,它只能在1.56之后才可用。 –