操作系统: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