确定默认使用哪个 TLS 版本 (cURL)

确定默认使用哪个 TLS 版本 (cURL)

我有 2 台服务器,分别运行curl 7.29.0CentOS 7。但是,当我运行以下命令时,我得到了 2 个不同的结果:

curl https://tlstest.paypal.com
  1. PayPal_Connection_OK
  2. ERROR! Connection is using TLS version lesser than 1.2. Please use TLS1.2

为什么一台服务器默认使用 TLSv1.2 连接,而另一台却不默认?

--tlsv1.2(我知道如果我愿意我可以强迫它)

答案1

为什么一台服务器默认使用 TLSv1.2 连接,而另一台却不默认?

默认情况下,curl将与服务器协商,并使用curl服务器支持的最高版本。因此,如果连接使用不同的 TLS 版本,则curl服务器上的版本可能不同。当您写到 curl 报告的版本相同时,您还应该检查所使用的共享库“libcurl”的版本curl- 这也可能会有所不同。

最有可能的是,其中一台服务器使用了相当旧的版本curl或 libcurl - curl 自 2016 年以来一直支持 TLS 1.3(我相信是 v7.52),自 2012 年以来一直支持 TLS 1.2(v7.28)。

我有 2 台服务器,都运行 curl 7.29.0 和 CentOS 7。

请注意,curl 7.29 相当旧(2013 年 2 月发布),因此升级是个好主意。

答案2

以下步骤解决了我的问题:

  1. 更新以下3个包:

sudo yum update curl libcurl nss

  1. 重新启动 nginx/apache*

sudo service nginx restart

sudo service hhvm restart

*用相关服务替换这些(例如 apache、php-fpm 等...)

相关内容