centos下将curl的nss改成openssl,以支持微博登陆

问题:我们的的一个站点是给用户登录的,有提供微博登陆,由于微博登陆需要的时候是https,但是我们的centos系统中nss在centos 6/7的系统里面的curl支持的https是nss版本的,而不是openssl的,所以在php使用curl访问https的时候会报的错误

环境:

CentOS Linux release 7.2.1511 (Core)

解决方案:

1.查看现有的curl的版本信息

[root@li1554-232 curl-7.29.0]# curl -V
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.21 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets

2.官网下载了一个最新版本(curl-7.29.0.tar.gz)的curl,来进行源码编译。

./configure --without-nss --with-ssl 

 make &&make install

3.然后是把curl的lib添加到PATH中
echo “/usr/local/lib” >> /etc/ld.so.conf && ldconfig(这个有时候需要/但不一定重启服务器后,再次执行这个命令)

4.此时,通过命令行运行php调用curl 带证书访问web的php程序可以正常了

最后重启php和nginx,使其生效,这个时候发现nss已经变成了openssl

[root@php28 curl-7.29.0]# curl -V
 curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 OpenSSL/1.0.1e zlib/1.2.7
 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp
 Features: IPv6 Largefile NTLM NTLM_WB SSL libz

PS.注意你下载的curl的版本必须跟你线上使用的curl版本一致,否则会影响你的线上的服务

此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注