如何在 t1.micro 实例上更新 AWS RHEL 6.4 AMI 上的 curl



我使用 AWS AMI 创建了 t1.micro 实例。这是版本详细信息

lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.7 (Santiago)
Release:        6.7
Codename:       Santiago

服务器功能齐全,工作正常。但是,当使用 Curl 连接时,它不会将 TLs1.2 连接发送到其他服务器。

这是测试脚本

$php -r '$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://tlstest.paypal.com/"); var_dump(curl_exec($ch)); var_dump(curl_error($ch));'

输出:

bool(false)
string(17) "SSL connect error"

当我使用 python 进行测试时,测试工作正常,如下所示$python -c "import urllib2;print(urllib2.urlopen('https://tlstest.PayPal.com/').read())"

输出:PayPal_连接_确定

软件版本如下

curl-7.19.7-46.el6.x86_64
libcurl-7.19.7-46.el6.x86_64
OpenSSL 1.0.1e-fips 11 Feb 2013
NSS/3.18 Basic ECC
PHP Version 5.3.3

我怀疑由于旧版本的 Curl,它无法在 Curl 请求上使用 TLS1.2。

我尝试通过 yum 更新更新它

sudo yum install curl libcurl
Loaded plugins: amazon-id, rhui-lb, security
Setting up Install Process
rhui-REGION-client-config-server-6 | 2.9 kB 00:00
rhui-REGION-rhel-server-releases | 3.7 kB 00:00
rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00
Package curl-7.19.7-46.el6.x86_64 already installed and latest version
Package libcurl-7.19.7-46.el6.x86_64 already installed and latest version
Nothing to do

但它声明它是最新的,没有什么可更新的。

我想知道为什么 yum 不将 Curl 更新到最新版本?感谢任何指示。

谢谢奥斯威

从这个链接得到答案 https://www.digitalocean.com/community/questions/how-to-upgrade-curl-in-centos6

为我工作。

添加一个名为/etc/yum.repos.d/city-fan.repo 的新文本文件,其中包含

[CityFan]
name=City Fan Repo
baseurl=http://nervion.us.es/city-fan/yum-repo/rhel$releasever/$basearch/
enabled=1
gpgcheck=0

无论哪种方式,您都应该很高兴:

百胜安装库库尔应该将 cURL 更新到(非常)最新的基于 openSSL 的版本(撰写本文时为 7.46.0),这将解决 TLSv1 等的"未知协议"错误。

然后,如果您想防止 yum 以后更新您可能已经使用"非官方"更高版本安装的其他软件包,您可能需要删除/重命名 city-fan.repo 文件。

最新更新