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