problems

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

  • 若需要让curl支持https协议,需要安装openssl并在curl中使之生效:

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

最后更新: 2020年09月20日 17:21

原始链接: https://silence-linhl.github.io/blog/2019/10/21/prob1/

× 请我吃糖~
打赏二维码