LWP::UserAgent 和 500 SSL 协商失败

LWP::UserAgent and 500 SSL negotiation failed

我是 运行 一个旧的 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 );

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

我制作了服务器的快照,这样我就可以尝试各种解决方案,如果失败了,return 可以对快照进行尝试。这正是我在每次测试后所做的,return 到原始服务器状态。

测试 1: 我尝试的第一件事是将 OpenSSL 更新到 1.0.2d。那没有帮助,我仍然收到 "SSL negotiation failed" 错误。然后我更新了 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