LWP拒绝通过HTTPS连接

Tom*_*mas 6 perl https debian lwp

我使用Perl v5.14.2和libwww-perl v6.04-1在Debian上运行以下Perl代码片段

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new("GET", "https://google.com/");
my $rep = $ua->request($req);
print $rep->status_line;
Run Code Online (Sandbox Code Playgroud)

这会立即返回"500无法连接到google.com:443".我试过使用LWP::Simple, Net::SSLeay, Crypt::SSLeay等没有任何成功.

奇怪的是,在运行完全相同的Perl和LWP版本的另一个Debian系统上执行相同的代码.

所以我想,底层系统有一些错误,但其他应用程序 - 比如任何浏览器的cURL - 都运行正常.

此外,openssl s_client -connect google.com:443返回Verify return code: 20 (unable to get local issuer certificate)两个系统.

有没有人遇到过这种现象并有解决方案?

小智 7

而不是这个:

$ua = LWP::UserAgent->new;
Run Code Online (Sandbox Code Playgroud)

试着用这个:

$ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
Run Code Online (Sandbox Code Playgroud)