我使用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;
这会立即返回“500无法连接到google.com:443”.我尝试过使用LWP :: Simple,Net :: SSLeay,Crypt :: SSLeay等,没有任何成功.
奇怪的是,在运行完全相同的Perl和LWP版本的另一个Debian系统上执行相同的代码.
所以我想,底层系统有一些错误,但其他应用程序 – 比如任何浏览器的cURL – 都运行正常.
此外,openssl s_client -connect google.com:443会在两个系统上返回验证返回码:20(无法获取本地颁发者证书).
有没有人遇到过这种现象并有解决方案?
解决方法
而不是这个:
$ua = LWP::UserAgent->new;
试着用这个:
$ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });