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

how to update curl on AWS RHEL 6.4 AMI on a t1.micro instance

我有 t1.micro 个使用 AWS AMI 创建的实例。这是版本详情

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_Connection_OK

软件版本如下

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 update 更新它

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 更新到最新版本?感谢任何指点。

谢谢, 好吧

从这里得到答案link 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

无论哪种方式,您都可以开始了:

yum 安装 libcurl 应该将 cURL 更新为(非常)最新的基于 openSSL 的版本(在撰写本文时为 7.46.0),这将解决 TLSv1 等的 "unknown protocol" 错误

你可能想要 remove/rename city-fan.repo 文件,如果你想防止 yum 以后也更新你可能已经安装了 "non-official" 更高版本的其他软件包。