CentOS7 升级 curl 支持 HTTP2 与 TLS 1.3

举报
云物互联 发表于 2021/08/05 23:42:23 2021/08/05
【摘要】 目录 文章目录 目录编译安装YUM 升级curl 常用选项 编译安装 安装编译环境: yum -y groupinstall "Development Tools" yum -y install libev libev-devel zlib zlib-devel openssl openssl-devel git 12 安装 OpenSSL: m...

目录

编译安装

安装编译环境:

yum -y groupinstall "Development Tools"
yum -y install libev libev-devel zlib zlib-devel openssl openssl-devel git

  
 
  • 1
  • 2

安装 OpenSSL:

mkdir /var/tmp
cd /var/tmp
wget https://openssl.org/source/openssl-1.0.2.tar.gz
tar -zxf openssl-1.0.2.tar.gz
cd openssl-1.0.2
mkdir /opt/openssl
./config --prefix=/opt/openssl
make
make test
make install

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

安装 nghttp2:

git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make
make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/custom-libs.conf
ldconfig
ldconfig -p| grep libnghttp2

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

安装 curl:

cd /var/tmp
git clone https://github.com/bagder/curl.git
cd curl
./buildconf
./configure --with-ssl=/opt/openssl --with-nghttp2=/usr/local --disable-file --without-pic --disable-shared
make

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

验证:

$ /var/tmp/curl/src/curl --version
curl 7.70.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.70.0-DEV OpenSSL/1.0.2o nghttp2/1.41.0-DEV
Release-Date: [unreleased]
Protocols: dict ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS HTTP2 HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

注意:curl 从 7.52.0 版本开始也已经支持 TLS 1.3 了,curl 7.61.0 及以上在 TLS 握手过程中协商 TLS 版本时,curl 默认使用 TLS 1.3,但也取决于 curl 正在使用的 TLS 库及其版本,例如:要求 OpenSSL 1.1.1 版本以上。

YUM 升级

安装新版 libcurl 的 yum 源:

rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm

  
 
  • 1

升级:

yum upgrade libcurl

  
 
  • 1

升级完成后可以卸载此 yum 源:

rpm -e city-fan.org-release

  
 
  • 1

curl 常用选项

语法格式:
  curl [options] [URL...]

常用选项如下所示:
  -A/--user-agent <string>: 设置用户代理发送给服务器 -e/--referer <URL>: 来源网址 --cacert <file>: CA 证书(SSL) -k/--insecure: 允许忽略证书进行 SSL 连接 --compressed: 要求返回是压缩的格式 -H/--header <line>: 自定义首部信息传递给服务器 -i: 显示页面内容,包括报文首部信息 -I/--head: 只显示响应报文首部信息 -D/--dump-header <file>: 将 URL 的 header 信息存放在指定文件中 --basic: 使用 HTTP 基本认证 -u/--user <user[:password]>: 设置服务器的用户和密码 -L: 如果有 3xx 响应码,重新发请求到新位置 -O: 使用 URL 中默认的文件名保存文件到本地 -o <file>: 将网络文件保存为指定的文件中 --limit-rate <rate>: 设置传输速度 -0/--http1.0: 数字 0,使用 HTTP 1.0 -v/--verbose: 更详细 -C: 选项可对文件使用断点续传功能 -c/--cookie-jar <file name>: 将 URL 中 Cookie 存放在指定文件中 -x/--proxy <proxyhost[:port]>: 指定代理服务器地址 -X/--request <command>: 向服务器发送指定请求方法 -U/--proxy-user <user:password>: 代理服务器用户和密码 -T: 选项可将指定的本地文件上传到 FTP 服务器上 --data/-d: 方式指定使用 POST 方式传递数据 -b name=data: 从服务器响应 set-cookie 得到值,返回给服务器

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78

文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。

原文链接:is-cloud.blog.csdn.net/article/details/105695093

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。