微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl – LWP :: UserAgent和500 SSL协商失败

我正在运行一个旧的Debian服务器,每天一次通过Perl脚本获取网页.从昨天开始,脚本因“500 SSL协商失败”错误而失败.

use strict;
use LWP::UserAgent;

my $browserObj = LWP::UserAgent->new();

$response = $browserObj->get( "https://www.domain.tld" );
print $response->status_line . "\n" if( ! $response->is_success );

就像我说的,它是一个运行旧版本的旧服务器:

> Perl:5.8.8
> OpenSSL:0.9.8c
> LWP:5.805
>地穴:: SSLeay:0.57

我制作了服务器的快照,以便我可以尝试各种解决方案,如果失败则返回快照.这正是我在每次测试后所做的,返回到原始服务器状态.

测试1:
我尝试的第一件事是将OpenSSL更新为1.0.2d.这没有帮助,我仍然得到“SSL协商失败”错误.然后我更新了Crypt:SSLeay.这完全打破了SSL(导致服务器无法连接到任何安全服务器).

测试2:
更新了Crypt :: SSLeay而不更新OpenSSL.导致服务器无法再次连接到安全服务器.

测试3:
将OpenSSL更新为1.0.2d.更新了LWP.没有区别.仍有“500 SSL协商失败”

还有什么我可以尝试的吗?

PS:由于几个原因,我无法更新Debian本身.

解决方法

我让它为Perl工作.我怀疑,服务器上使用SSL的每个程序都需要单独修补.但这是Perl的解决方案:

1)更新OpenSSL(到版本1.0.2d)

这是使用SSL的每个程序的必要步骤!在我的Debian系统上,我使用了here发现的指令.

2)更新Net :: SSLeay

这是必要的,否则步骤4)将失败.

$cpan Net::SSLeay

3)更新Getopt :: Long

同样,这一步是必要的,否则步骤4)将失败.

$cpan Getopt::Long

4)更新Crypt :: SSLeay

请注意,这也将更新LWP.

$cpan Crypt::SSLeay

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐