添加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其中一个可以用的】

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

时间: 2024-10-29 15:07:58

添加curl的openssl的功能,实现https的正确访问的相关文章

用NDK生成cURL和OpenSSL库

最近在用Qt开发Android应用时需要获取https页面内容,但Qt内置的QNetworkAccessManager类只支持下面这些协议(调用其supportedSchemes成员函数获取): ("ftp", "file", "qrc", "http", "data") 而网上我找到的支持https的介绍是使用QSslConfiguration类,然后把OpenSSL的两个DLL(libeay32.dll

Android KitKat 4.4平台开发-添加USB ADB和MTP功能支持

ADB和MTP是Android基于USB实现的两个重要功能,极大地方便了用户在PC与Android设备之间的互操作,比如传输文件.安装应用.开发调试应用. 本文讲述如何在特定软硬件平台下支持Android ADB和MTP功能. Android版本: KitKat 4.4.2 Linux内核版本: 3.10 (Vendor Kernel) 硬件平台: Atmel SAMA5D3 SoC 针对Linux内核的更改 Merge Android Linux内核USB Gadget驱动到处理器厂商Linu

github RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

出现此问题有可能是上传大小限制: 执行如下命令   git config http.postBuffer 524288000 524288000算法:   1024*1024*500 出现如下错误:curl 56 OpenSSL SSL_read:SSL_ERROR_sysCALL  执行:  git config http.sslVerify "false" 原文地址:https://www.cnblogs.com/wangshuazi/p/9608060.html

web前端利用vue.js实现品牌列表的添加,删除与筛选功能

实现效果图: 实现功能:web前端利用vue.js实现品牌列表的添加,删除与筛选功能 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &l

添加条码生成和打印功能到SQL Server Reporting Services report 中

Barcode Professional for Reporting Services 是一款灵活和强大的.NET组件(.NET DLL 类库),它让您轻松地添加条码生成和打印功能到您的SQL Server Reporting Services report 中.支持几乎所有当前常用的条码:Code 39, Code 128, GS1-128, GS1 DataBar (RSS-14), EAN 13 & UPC, Postal (USPS, British Royal Mail, Austra

添加、编辑、删除功能测试点

添加功能 1.特殊键:(1)是否支持Tab键 (2)是否支持回车键 2.提示信息:(1)不符合要求的地方是否有错误提示 3.唯一性:(1)字段唯一的,是否可以重复添加,添加后是否能修改为已存在的字段 (字段包括区分大小写以及在输入的内容前后输入空格,保存后,数据是否真的插入到数据库中,注意保存后数据的正确性) 4.数据正确性: (1)对编辑页的每个编辑项进行修改,点击保存,是否可以保存成功,检查想关联的数据是否得到更新. (2)进行必填项检查(即是否给出提示以及提示后是否依然把数据存到数据库中:

php通过cURL下载网络上面的一个HTTPS的资源

<?php /** * php通过cURL下载网络上面的一个HTTPS的资源 * 案例:从google的CDN上下载jquery- v1.7.1 */ $curlobj = curl_init(); // 初始化 curl_setopt($curlobj, CURLOPT_URL, "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js");// 设置访问网页的URL curl_setopt($curlo

Windows 7或者 server 小技巧 添加 IIS和FTP 组件功能

Windows 7或者 server 小技巧  添加 IIS和FTP 组件功能 在万能的 控制面版 ,添加删除 组件中 . 在IE中输入  http://127.0.0.1 或者 http://localhost 打开如下图片,即表示安装成功. 在控制面版,管理工具中可以打开 IIS管理器.

为axure生成的html站点添加关闭所有节点的功能

上一篇随笔:将Axure用于需求分析工具中,我分享了我做了一个axure部件,方便用axure中制作各种uml图. 用axure的朋友可能会发现一个问题,如下图,axure生成的html站点中所有的文件夹都是默认打开的,如果文件太多的话要找到目标文件是很麻烦的. 我要解决这个问题,于是发挥主观能动性,为这个站点添加“关闭所有节点”的功能. 找到对应的文件:安装目录\DefaultSettings\Prototype_Files\start.html,给这个文件加了些js,如下: <script