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 );
就像我说的,它是一个旧服务器 运行 所有东西的旧版本:
- Perl: 5.8.8
- OpenSSL: 0.9.8c
- LWP:5.805
- Crypt::SSLeay: 0.57
我制作了服务器的快照,这样我就可以尝试各种解决方案,如果失败了,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
我是 运行 一个旧的 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
- Crypt::SSLeay: 0.57
我制作了服务器的快照,这样我就可以尝试各种解决方案,如果失败了,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