• 添加curl的openssl的功能,实现https的正确访问


    公司开发部遇到一个难题,服务器环境的curl的功能参数无法支持ssl,那么很多功能将会无法实现。那么好吧,这个问题只好抛到运维这边了,我也是个新手,下边的见解纯属个人分析(如有问题,欢迎讨论):

    首先系统:Centos 6.5 x86_64,

    服务器版本的默认安装路径:curl在/usr下,openssl在/usr下   (当然,版本都是挺低的,yum更新后,版本还是很低,而且理所当然的,yum安装是无法带参数的,那么很显然,更新后curl还是无法支持openssl)

    安装所有常用的开发包yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33    curl curl-devel python

    (这个是为了以防删掉openssl或者curl的时候出现各种问题的时候,你还有合适的工具可以修复,不要小看以上的东西,如果你试过yum和rpm和wget,scp甚至是ssh都不能使用的时候,你就会发现,做好一个备份和安装好必要的环境是多么的重要)


    卸载旧版本
    rpm -e --nodeps curl
    yum install curl -y


    添加ssl库的快速读取识别
    vi /etc/ld.so.conf
    在这里面将openssl生成的库文件所在目录加入,使用命令ldconfig刷新缓存

    这里用find / -name openssl查看安装目录,然后找到库文件目录,这里是/usr/lib64/openssl/)

     (这里如果不添加以上的ssl库参数,那么你在configure会提示

    SSL support:     enabled (OpenSSL)

    当然,我们是应该很开心的,但是,在make和make install的时候,你会发现扯淡的是

    curl -V

    curl 7.37.0 (x86_64-unknown-linux-gnu) libcurl/7.37.0  zlib/1.2.3 libidn/1.18

    根本就没有openssl的支持好不好!,这是一个很蛋疼的事情,为此我尝试了多个版本,用正确的编译方式,结果都是前边支持,后边不支持。当然,还是有偶然的机遇下,在多个版本的安装和卸载后,测试机完美的运行了。当然,这也是我花了一个礼拜的时间坚持下的原因,要不是我偶然成功了,谁会花这么多的时间琢磨这一个问题呢。当然,我记录了测试机的安装步骤,但是。。在线上机根本就运行不了,同样的系统,同样的配置,同样的软件,同样的操作,这也是我总结出,我的方法可能只是偶然找到ssl的库文件了。

    安装新版本的curl
    wget http://curl.haxx.se/download/curl-7.37.0.tar.gz      (当然,这个路径换一个版本号就可以下载其他版本,测试32位直接安装成功,64位还需要添加以上的ssl库快读参数)
    ./configure --prefix=/usr --with-ssl=/usr      (必须确认ssl的安装路径,而且必须添加这个参数,默认无)
    make
    make install

     【

    这些安装的时候就会找到ssl的库文件,那么就可以编译成功的了


    curl -V
    满足条件 libcurl/7.37.0 OpenSSL/1.0.1e同时识别,整个环境所使用的curl就具备了支持ssl的功能了

    【还有要注意的是,如果不行,可以重复第二遍新版本的重新编译,当然第三遍不行就不用了,可以试试看其他版本,我是7.36和7.37其中一个可以用的】

  • 相关阅读:
    新发地突发新冠病例,我从北京来赶来为疾控软件开发人员分享Azure DevOps,汗
    Azure DevOps Server:还原被删除的分支
    Azure DevOps Server 拉取请求模板(Pull Request Template)
    Azure DevOps Server:使用Postman批量删除测试用例
    Visual Studio Code:在操作系统文件夹或文件上出现Open with Code菜单
    在Windows XP上访问Azure DevOps Server 2019(TFS)
    将团队项目迁移到另外一个团队项目集合中
    快速排序c++实现 快排C++代码实现
    高等代数(第四版) 王萼芳课后答案
    数据结构题集(C语言版)课后答案+源码严蔚敏、吴伟民编著
  • 原文地址:https://www.cnblogs.com/waterfox/p/3799046.html
Copyright © 2020-2023  润新知