我们已经通过我们的Unix服务器(特别是SCO Openserver 5.0.7)使用运输API一年多了。
我们的系统生成XML文件,使用lwp-request
command将它们发送到服务器,接收响应,解释它,并根据我们的系统的需要对其进行处理。
我们使用的确切命令是:
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执行相同的工作?
答案 0 :(得分:0)
鉴于您的旧版本的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。考虑到你的系统有多大,你不可能仅仅因为大多数人没有想到有人试图在过时的系统上编译更新的软件而在编译中遇到各种问题。因此,将所有内容升级到最近支持的操作系统可能更容易,而不是尝试使用旧系统进行操作。