Perl "lwp-request"使用 TLS 1.2 给出错误 500



我们已经通过我们的Unix服务器使用交付API,特别是SCO Openserver 5.0.7,一年多一点了。

我们的系统会生成 XML 文件,使用 lwp-request 命令将它们发送到服务器,接收响应、解释响应并根据系统需要对其进行处理。

我们使用的确切命令是:

lwp-request -m POST https://url.com < REQUESTFILE.XML > RESPONSEFILE.XML

运输公司正在升级所有服务器以要求TLS 1.2,现在我得到

500 SSL 协商失败:

作为使用此命令时的响应。

我不确定如何使我们的系统兼容。

  • 我需要更新 Perl 吗?(当前版本是为 i586-pc-sco3.2v5.0 构建的 v5.8.8)。如果是这样,使用 TLS 1.2 的最低版本是多少?

  • 我需要更新 LWP 吗?我相信我的 LWP 版本是 5.805(使用 perl -MLWP -le "print(LWP->VERSION)" 得到这个)

  • 我是否需要进入lwp-request脚本并手动修改它?

  • 或者是否有另一个命令使用 TLS 1.2 执行等效工作?

鉴于您非常旧的Perl版本(5.8.8,其中5.8.9发布于2008年)和LWP(5.805,5.806于2007年发布)在一个非常旧的操作系统(SCO OpenServer 5.0.7,最后一次更新于2009年左右),您很可能也在运行非常旧版本的OpenSSL。TLS 1.2 仅在 2008 年指定,并且仅在 2012 年 3 月发布的 1.0.1 中在 OpenSSL 中可用,即在您的系统进行任何软件更新后的几年。

你可以用openssl version检查它,我的猜测是它说了一些关于0.9.8版本的东西,即太旧了。

要使TLS 1.2在这个旧系统上工作,你需要编译一个较新版本的OpenSSL(至少是最新的1.0.1),并重建与OpenSSL接口的Perl模块,以便它们使用这个新版本。根据您的设置,这可能是Crypt::SSLeay或Net::SSLeay。考虑到你的系统有多旧,你不太可能在编译时遇到各种问题,因为大多数人不希望有人试图在过时的系统上编译更新的软件。因此,将所有内容升级到最新且受支持的操作系统可能更容易,而不是尝试与旧系统抗争。

相关内容

最新更新