curl默认安装完后是只支持http协议而不支持https协议的。
1、可以先用curl -V查看当前curl支持哪些协议:
1 2 3 4 5
| [root@localhost ~]# curl -V curl 7.66.0 (x86_64-pc-linux-gnu) libcurl/7.66.0 OpenSSL/1.0.2k zlib/1.2.7 Release-Date: 2019-09-11 Protocols: dict file ftp ftps gopher http imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
|
可以看到并不支持https协议。若用curl命令访问https时就会报错:
Protocol https not supported or disabled in libcurl
2、下载并安装openssl包(若已经装了则不需要重新安装):
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
wget https://www.openssl.org/source/openssl-fips-2.0.14.tar.gz
安装openssl-fips:
1 2
| tar xvf openssl-fips-2.0.14.tar.gz cd openssl-fips-2.0.14 && ./config && make && make install
|
安装openssl:
1 2
| tar xvf openssl-1.0.2k.tar.gz ./config shared --prefix=/usr/local/ssl && make && make install
|
3、更新ld
1 2
| echo "/usr/local/ssl/lib" >> /etc/ld.so.conf ldconfig -v
|
4、配置openssl库
1 2 3 4 5 6 7 8 9 10 11
| cp /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib64 cp /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib64
chmod 555 /usr/lib64/libssl.so.1.0.0 chmod 555/usr/lib64/libcrypto.so.1.0.0
ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10 ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s/usr/local/ssl/include/openssl /usr/include/openssl
|
5、 查看openssl版本
1 2 3 4 5 6 7 8 9
| openssl version -a
OpenSSL 1.0.2k-fips 26 Jan 2017 built on: reproducible build, date unspecified platform: linux-x86_64 options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM OPENSSLDIR: "/etc/pki/tls" engines: rdrand dynamic
|
6、重新编译curl
1 2 3
| ./configure –with-ssl=/usr/local/ssl make make install
|
7、查看curl是否已经支持https协议:
1 2 3 4 5 6
| curl -V [root@localhost ~]# curl -V curl 7.66.0 (x86_64-pc-linux-gnu) libcurl/7.66.0 OpenSSL/1.0.2k zlib/1.2.7 Release-Date: 2019-09-11 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
|
可以看到已经支持https协议了。
内容参考PrefectSix