问题:在项目里使用curl请求微信验证接口,发现有时返回null,一开始以为是微信请求写错了,然后逐步排查,发现在别的服务器内不会返回null,然后打印curl结果erron,错误编号是77。
原因:服务器是centOs,默认ssl version是NSS,
在网上查询之后是这个原因,而正确应该是openssl。
解决方法:修改服务器的SSL Version配置,安装编译openssl,执行命令:
wget https://curl.haxx.se/download/archeology/curl-7.19.7.tar.gz
tar xvzf curl-7.19.7.tar.gz
cd curl-7.19.7
./configure --prefix=/usr/local/curl/ --without-nss --with-ssl
sudo make && sudo make install
备份默认的curl二进制文件
sudo mv /usr/bin/curl /usr/bin/curl.bak
然后做一个新的curl软链
sudo ln -s /usr/local/curl/bin/curl /usr/bin/curl
我的服务器是执行这些命令就可以实现正常的curl功能,有其他情况欢迎补充!