评论

收藏

CentOS7 升级 curl 支持 HTTP2 与 TLS 1.3

网络安全 网络安全 发布于:2021-07-16 19:49 | 阅读数:438 | 评论:0

目录
文章目录


  • 目录
  • 编译安装
  • YUM 升级
  • curl 常用选项

编译安装安装编译环境:
yum -y groupinstall "Development Tools"
yum -y install libev libev-devel zlib zlib-devel openssl openssl-devel git
安装 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
安装 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
安装 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
验证:
$ /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
注意: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
升级:
yum upgrade libcurl
升级完成后可以卸载此 yum 源:
rpm -e city-fan.org-release
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 得到值,返回给服务器


关注下面的标签,发现更多相似文章