博客园  :: 首页  :: 管理

操作系统:Red Hat Enterprise Linux Server release 7.6 (Maipo)
curl官网:https://curl.se


今天在一台主机上使用curl命令时(访问https网站下载脚本,curl使用了--tlsv1.2及--insecure选项)
报错:curl: (1) Protocol "https" not supported or disabled in libcurl

初步的排查过程如下:

[qq_5201351@localhost ~]$ curl -V
curl 7.69.0 (x86_64-pc-linux-gnu) libcurl/7.69.0
Release-Date: 2020-03-04
Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp
Features: AsynchDNS Largefile UnixSockets
[qq_5201351@localhost ~]$ 

由上可知curl没有对https的支持,应该是当初安装时没有添加对SSL的支持

尝试解决方案:先安装openssl-devel,然后再yum update curl命令,还是一样的不支持

 

+++于是使用了源码安装curl(为了安全,不影响现有系统,笔者先使用个人普通用户安装),进行安装解决

1、使用root用户,安装openssl-devel软件包(如果不安装,源码安装的curl依然不会支持SSL)

[root@localhost ~]# yum install openssl-devel -y

2、源码编译安装curl,普通的三步安装即可,推荐使用--prefix指定好安装路径

[qq_5201351@localhost ~]$ wget https://curl.se/download/curl-7.76.1.tar.gz
[qq_5201351@localhost ~]$ tar zxf curl-7.76.1.tar.gz
[qq_5201351@localhost ~]$ cd curl-7.76.1/
[qq_5201351@localhost curl-7.76.1]$ ./configure --prefix=/home/qq_5201351/curl_https
[qq_5201351@localhost curl-7.76.1]$ make
[qq_5201351@localhost curl-7.76.1]$ make install

3、最后执行执行自己安装的curl命令可以看到支持https了(也可以加入到用户PATH变量中)

[qq_5201351@localhost ~]$ /home/qq_5201351/curl_https/bin/curl -V
curl 7.76.1 (x86_64-pc-linux-gnu) libcurl/7.76.1 OpenSSL/1.0.2k-fips zlib/1.2.7
Release-Date: 2021-04-14
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HTTPS-proxy Largefile libz NTLM NTLM_WB SSL UnixSockets

4、最后问题得到解决,当然也可以直接使用root用户安装,然后配置好PATH环境变量,让系统不使用默认yum/rpm方式安装的curl命令

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/14716040.html