curl不能支持https问题

默认情况下,libcurl不支持https, 如果使用https链接,就会出现" Protocol https not supported or disabled in libcurl" 的错误提示。查看curl是否支持https可以使用命令:

curl -V。

curl有两种方式使用https :

1. 设定为不验证证书和HOST

code = curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 0L);

2. 设定一个SSL判别证书

http://curl.haxx.se/ca/cacert.pem

基于这两种方法都不知道怎么去使用,所以只好用最笨的方法,重装curl:

1.下载curl-7.14.0.tar.gz压缩包,网上很多

2.解压:# tar -zxvf curl-7.14.0.tar.gz

# cd curl-7.14.0

# ./configure 这里注意的是最后会显示一段信息提示是否支持https:

curl version:    7.14.0
  Host setup:      x86_64-unknown-linux-gnu
  Install prefix:  /usr/local
  Compiler:        gcc
  SSL support:     no      (--with-ssl / --with-gnutls)
  zlib support:    enabled
  krb4 support:    no      (--with-krb4*)
  GSSAPI support:  no      (--with-gssapi)
  SPNEGO support:  no      (--with-spnego)
  c-ares support:  no      (--enable-ares)
  ipv6 support:    enabled
  IDN support:     enabled
  Build libcurl:   Shared=yes, Static=yes
  Built-in manual: enabled
  Verbose errors:  enabled (--disable-verbose)
  SSPI support:    no      (--enable-sspi)
  ca cert path:    no

这里的SSL support提示的是不支持的,因为https协议是加密安全的基于http的协议,需要使用openssl的静态库,所以需要支持https就必须下载openssl,这里不做赘述,方法可见:http://www.linuxidc.com/Linux/2011-01/31229.htm

# vi /etc/ld.so.conf,在这里面将openssl生成的库文件所在目录加入,使用命令ldconfig刷新缓存。

# ./configure --prefix=/usr/local/curl --with-ssl=/usr/local/ssl ,注意最后一段信息

curl version:    7.14.0
  Host setup:      x86_64-unknown-linux-gnu
  Install prefix:  /usr/local
  Compiler:        gcc
  SSL support:     enabled (OpenSSL)
  zlib support:    enabled
  krb4 support:    no      (--with-krb4*)
  GSSAPI support:  no      (--with-gssapi)
  SPNEGO support:  no      (--with-spnego)
  c-ares support:  no      (--enable-ares)
  ipv6 support:    enabled
  IDN support:     enabled
  Build libcurl:   Shared=yes, Static=yes
  Built-in manual: enabled
  Verbose errors:  enabled (--disable-verbose)
  SSPI support:    no      (--enable-sspi)
  ca cert path:    /usr/local/share/curl/curl-ca-bundle.crt

提示支持openssl已经支持了,然后再make, make install即可。

# curl -V

curl 7.14.0 (x86_64-unknown-linux-gnu) libcurl/7.14.0 OpenSSL/1.0.1e zlib/1.2.3 libidn/1.18
Protocols: ftp gopher telnet dict ldap http file https ftps
Features: IDN IPv6 Largefile NTLM SSL libz

提示已经支持https了。

时间: 2024-12-29 06:48:54

curl不能支持https问题的相关文章

php中curl不支持https的解决办法

在php程序中使用curl去访问https站点时,报错:Protocol https not supported or disabled in libcurl 该错误信息表示php当时编译时使用的curl库不支持https, 验证方法为你的curl安装目录/bin/curl  -V  显示如下:Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp这表示curl是不支持 https的 为了支持https,需要下载源

Linux下PHP5.2安装curl扩展支持https

问题: 线上运行的LNMP服务器,因历史原因安装的curl模块只支持http,不支持https.类似请求或POST微信接口(小程序),都无法正常使用. 一.解决方法: 编译安装curl,重新编译php,使php的curl模块支持https. cd /data0/software1.下载安装curlwget http://curl.haxx.se/download/curl-7.44.0.tar.gztar zxvf curl-7.44.0.tar.gzcd curl-7.44.0./config

curl 不支持 https(Protocol https not supported or disabled in libcurl)

curl默认安装完后是只支持http协议而不支持https协议的. 可以先用curl -V查看当前curl支持哪些协议: [[email protected] /]# curl -V curl 7.19.4 (x86_64-unknown-linux-gnu) libcurl/7.19.4 OpenSSL/1.0.2k zlib/1.2.11 Protocols: tftp ftp telnet dict http file ftps 可以看到并不支持https协议.若用curl命令访问http

python error: curl: (1) Protocol "'https" not supported or disabled in libcurl

python 调用curl访问一个网页时,出现error: curl: (1) Protocol "'https" not supported or disabled in libcurl 控制台直接curl xxx是ok的 output = subprocess.check_output(["curl","https://stackoverflow.com/questions/6884669/curl-1-protocol-https-not-suppo

windows下编译支持https的libcurl

本文参考http://blog.csdn.net/fragmentalice/article/details/39430293特此感谢.公司项目中用到几个http get请求,用的libcurl开源库.当新需求接入第三方接口的时候,需要改成支持https,发现以前的libcurl库并不支持.所以要重新编译一个.具体编译环境如下:硬件:CPU:Intel Core(TM) i3-3250 CPU @ 3.00GHzRAM:4GB (3.41GB可用)GPU:板载集成显卡软件:Windows 7 S

【转】如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS

地址: http://blog.csdn.net/hujkay作者:Jekkay Hu([email protected])关键词:Windows,curl,ssl,  visual c++ 2005, libcurl, https,网页抓取时间: 2014/2/18 1. 概述 由于Curl提供强大的网络功能,支持HTTP,HTTPS, DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP

【转】让 cocos2d-x 的 CCHttpRequest 支持https

肖锐(Cooki)个人原创,欢迎转载,转载请注明地址,肖锐(Cooki)的技术博客 http://blog.csdn.net/xiao0026 由于游戏用到了网络头像, 今天发现换成facebook登陆后头像下载失败, 2dx默认的没有支持https, 于是找到 network/ HttpClient.cpp [cpp] view plaincopy [cpp] view plaincopy int processGetTask(CCHttpRequest *request, write_cal

https大势已来?看腾讯专家如何在高并发压测中支持https

WeTest 导读 用epoll编写一个高并发网络程序是很常见的任务,但在epoll中加入ssl层的支持则是一个不常见的场景.腾讯WeTest服务器压力测产品,在用户反馈中收到了不少支持https协议的请求.基于此,本文介绍了在基于epoll的高并发机器人框架中加入openssl,实现对https支持时的基本实现思路.   一.背景 2014年,谷歌在其官方博客中发布公告称,为了打造更安全的互联网环境,谷歌搜索引擎将尝试把"是否使用安全加密"(HTTPS)作为搜索排名算法中的一个参考因

libcurl的封装,支持同步异步请求,支持多线程下载,支持https

最近在做一个项目,需要用到http get post等 需求分析需要做到同步和异步,异步请求的返回以可选的回调通知的方式进行. 本人以Linux为例,一步一步的来实现. 配置并且编译libcurl我以在Linux底下的交叉编译举例.libcurl源码下载: http://curl.haxx.se/download.html配置libcurl支持https和zlib压缩,必须需要openssl和zlib库openssl库源码下载: http://www.openssl.org/source/.下载