libcurl使用认证证书 https认证
在server.xml中增加下面的内容:
- ciphers="SSL_RSA_WITH_RC4_128_SHA"
下面是libcurl 的测试代码:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <curl/curl.h>
- static size_t save_response_callback(void *buffer,size_t size,size_t count,void **response)
- {
- char * ptr = NULL;
- printf("buffer is %s\n",(char *)buffer);
- ptr =(char *) malloc(count*size + 4);
- memcpy(ptr,buffer,count*size);
- *response = ptr;
- return count;
- }
- int main(int argc,char *argv[])
- {
- CURL * curl;
- CURLcode res;
- char * response = NULL;
- if(argc !=2){
- printf("Usage:file<url>;\n");
- return;
- }
- //curl_global_init(CURL_GLOBAL_DEFAULT);
- curl = curl_easy_init();
- if(curl!=NULL){
- printf("Usage:file<%s>;\n",argv[1]);
- curl_easy_setopt(curl,CURLOPT_URL,argv[1]);
- curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,&save_response_callback);
- curl_easy_setopt(curl,CURLOPT_WRITEDATA,&response);
- curl_easy_setopt(curl,CURLOPT_COOKIESESSION,1L);
- curl_easy_setopt(curl,CURLOPT_COOKIEFILE,"/dev/null");
- curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,1);
- //curl_easy_setopt(curl,CURLOPT_CAPATH,"/etc/ssl/cert/");
- curl_easy_setopt(curl,CURLOPT_CAINFO,"ca-cert.pem");
- curl_easy_setopt(curl,CURLOPT_SSL_VERIFYHOST,1);
- curl_easy_setopt(curl,CURLOPT_VERBOSE,1L);
- curl_easy_setopt(curl,CURLOPT_TIMEOUT,30);
- #if 0
- /* 双向验证下面是客户端的CA*/
- // curl_easy_setopt(curl,CURLOPT_CAPATH,"./");
- curl_easy_setopt(curl,CURLOPT_SSLCERT,"client-cert.pem");
- curl_easy_setopt(curl,CURLOPT_SSLCERTPASSWD,"password");
- curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
- curl_easy_setopt(curl,CURLOPT_SSLKEY,"client-key.pem");
- curl_easy_setopt(curl,CURLOPT_SSLKEYPASSWD,"password");
- curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,"PEM");
- #endif
- res = curl_easy_perform(curl);
- if(res != CURLE_OK){
- printf("curl_wasy_perform error = %s",curl_easy_strerror(res));
- }
- printf("response<%s>\n",response);
- curl_easy_cleanup(curl);
- }
- }
参考资料:
libcurl使用认证证书 https认证的更多相关文章
- Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问
0.环境 本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 必须安装nginx,必须安装openssl,(用apt-get upd ...
- 探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。
一.准备 1. 角色:小白.美美.小黑. 2. 剧情:小白和美美在谈恋爱:小黑对美美求而不得.心生怨念,所以从中作梗. 3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性. ...
- java https单向认证(忽略认证)并支持http基本认证
https单向认证(忽略认证)并支持http基本认证, 温馨提示 1,jar包要导入对 2,有匿名类编译要注意 3,欢迎提问,拿走不谢!背景知识 Https访问的相关知识中,主要分为单向验证和双向验证 ...
- AFNetworking之于https认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...
- AFNetworking 之于 https 认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...
- 【转】AFNetworking之于https认证
转自:http://www.cocoachina.com/ios/20161220/18393.html 写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想 ...
- Linux下Apache https认证
参考:http://kyfxbl.iteye.com/blog/1910891 http://showerlee.blog.51cto.com/2047005/1266712 一.环境 httpd:A ...
- https认证
HTTPS认证 说明 1. HTTPS协议的站点信息更加安全,同时可降低网站被劫持的风险,如网站同时存在HTTP和HTTPS站点,可使用本工具进行认证,便于百度搜索识别网站HTTP与HTTPS之间的对 ...
- Harbor配置https认证
Harbor配置https认证由于Harbor不附带任何证书,它默认使用HTTP来提供注册表请求.但是,强烈建议为任何生产环境启用安全性.因为测试使用,使用自签名证书: 1.创建CA证书 首先创建个目 ...
随机推荐
- 【前端】用javaScript实现实现一个球池的效果
ballPool 用javaScript实现实现一个球池的效果,实现效果如下所示: 动图: 截图: HTML代码: <!DOCTYPE html> <html > <he ...
- journalctl 工具使用
在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的 ...
- openwrt下定义软件包的依赖关系类型
在openwrt下软件包的依赖关系由DEPENDS:=来指定 第一种依赖关系类型为只有将依赖的软件包手动选上,当前的软件包就会自动被选中,用法为DEPENDS:=package_name 第二种依赖关 ...
- intellij idea rearrange code
reformat code的时候,无法将filed放在method前边,很恶心. 那么先去
- RocketMQ 自己的整理和理解
每个人的想法不同, RocketMQ 介绍的时候就说 是阿里从他们使用的上 解耦出来 近一步简化 便捷的 目的当然是 让其能快速入手和开发 如果不是在项目设计层面上 只是使用的话 从Git上下载该项目 ...
- windows组策略屏蔽
点“IP安全策略,在本地机器”——>创建IP安全策略---->下一步---->名称随便写,如输入阻止,然后一直点下一步,出现提示点是,一直到完成,这个时候就创建了一个名为“阻止”的策 ...
- POJ 2186 Popular Cows(强连通分量Kosaraju)
http://poj.org/problem?id=2186 题意: 一个有向图,求出点的个数(任意点可达). 思路: Kosaraju算法的第一次dfs是后序遍历,而第二次遍历时遍历它的反向图,从标 ...
- 在 Spark 中使用 IPython Notebook
本文是从 IPython Notebook 转化而来,效果没有本来那么好. 主要为体验 IPython Notebook.至于题目,改成<在 IPython Notebook 中使用 Spark ...
- 讲一下numpy的矩阵特征值分解与奇异值分解
1.特征值分解 主要还是调包: from numpy.linalg import eig 特征值分解: A = P*B*PT 当然也可以写成 A = QT*B*Q 其中B为对角元为A的特征值的对 ...
- Memcached incr 与 decr 命令
Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作. incr 与 decr 命令操作的数据必须是十进制的32位无符号整数. 如果 key 不存在 ...