我们已经通过我们的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。考虑到你的系统有多旧,你不太可能在编译时遇到各种问题,因为大多数人不希望有人试图在过时的系统上编译更新的软件。因此,将所有内容升级到最新且受支持的操作系统可能更容易,而不是尝试与旧系统抗争。