【问题标题】:curl tlsv1.2 option not workingcurl tlsv1.2 选项不起作用
【发布时间】:2017-01-04 16:21:42
【问题描述】:

我有 2 个 Linux 系统,其中命令 -> curl -V -> 显示如下

System-1

curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

System-2

curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

如果我在 System-1 上尝试使用 tlsv1.2 选项的 curl 命令,则会引发错误 -

[root@ssclnx1 ~]# curl -k -1 --tlsv1.2 --user user:pass -X GET https://HOST:9443/console/deploymnt/login 
curl: option --tlsv1.2: is unknown
curl: try 'curl --help' or 'curl --manual' for more information

相同的命令在 System-2 上运行良好。

两个系统中curl版本的唯一区别是——

NSS/3.16.2.3
NSS/3.19.1

NSS 到底是什么?我需要升级什么 lib\jar\utility 才能将 NSS 升级到 3.19.1 ? 我必须向客户提出一般性建议,以便 curl tlsv1.2 选项能够正常工作。 请建议。我被阻止了。

提前致谢 -

阿比吉特。

【问题讨论】:

  • 这更像是一个系统管理问题而不是软件开发问题——我不确定 StackOverflow 是否是最佳选择。更大的问题是,如果不重新编译 curl,仅升级 NSS 可能没有帮助,除非这是运行时检查(这在此处不是常见做法)。
  • ...而且,一般来说,所有这些都是你的 Linux 发行商应该为你编译的包——如果你或你的客户自己构建它们,那么有一个论点是这是问题的一部分:为什么你的系统行为不一致。

标签: linux ssl curl


【解决方案1】:

NSS 到底是什么?

网络安全服务库。这是 Mozilla (Firefox) 和部分 Chrome 使用的 TLS 库。见https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS

我需要升级什么 lib\jar\utility 才能将 NSS 升级到 3.19.1

我怀疑仅仅升级库会有所帮助。 NSS 从 3.15.1 版本开始支持 TLS 1.2,但是在构建 curl 时,可能决定在启用 TLS 1.2 支持的情况下不构建 curl。因此,重建 curl 并确保包含 TLS 1.2 支持可能就足够了。如果您升级系统,问题也可能会得到解决。

【讨论】:

  • curl 7.34.0 中添加了--tlsv1.2 选项,因此没有旧版本可以专门要求 1.2,那时您只能要求“TLS”。
  • @DanielStenberg:在这种情况下,供应商(我假设是 Redhat)可能将选项向后移植到 curl 7.19.7,但仅适用于选定的操作系统版本。因为根据 OP,该选项存在于 System-2 上。
  • 我知道这已经说明了,但它似乎也是一个相当大的反向移植(我以前没有听说过)所以我不完全相信我们在这里得到了正确的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
相关资源
最近更新 更多