vs2013 配置支持https的libcurl

简介: 需求:在vs2013上配置支持https协议的libcurl。 环境:win7(64位),vs2013   一、安装openssl: 需要先安装nasm和ActivePerl。 nasm需要手动配置环境变量。

 需求:在vs2013上配置支持https协议的libcurl

环境:win7(64)vs2013

 

一、安装openssl

需要先安装nasm和ActivePerl。

nasm需要手动配置环境变量。ActivePerl下载下来一路next安装就好了。

 

我安装openssl的时候是2018-08-03。不保证以后下面这个链接的方法依然有用。

我参考的是这个:https://blog.csdn.net/hpp24/article/details/54406424

亲测有用。只不过生成的include lib 等目录不对。居然在这目录C:\usr\local\ssl

需要注意的是,由于我的系统是64位的。我的vcvars32.bat在C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin这个目录中。

 

使用时需要指定头文件路径:

C:\usr\local\ssl\include

库的路径:

C:\usr\local\ssl\lib

同时要把libeay32.dllssleay32.dll拷贝到lib目录下。

 

使用时要把上面两个dll跟可执行文件放在一起。

#pragma comment(lib, "ssleay32.lib")

#pragma comment(lib, "libeay32.lib")

 

二、编译libcurl

直接去下载最新的。https://curl.haxx.se/download.html

我下载的是这个curl-7.61.0

解压,之后进入\curl-7.61.0\projects\Windows\VC12,打开curl-all.sln。里面有两个工程,

 

选择libcurl。配置选下面这个:

 

 配置属性-VC++目录-》包含目录  要指定openssl的头文件路径。

配置属性-VC++目录-》库目录 要指定openssl的库目录。

 

然后直接编译就好了。

curl-7.61.0\build\Win32\VC12\DLL Release - DLL OpenSSL

这个目录下会生成 libcurl.lib  libcurl.dll。这就大功告成了。

使用时的头文件路径是\curl-7.61.0\include

 

三、测试

可以参考这个:https://curl.haxx.se/libcurl/c/https.html

下面上我的代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<curl/curl.h>
#include<iostream>

using namespace std;

#pragma comment(lib, "libcurl.lib")
#pragma comment(lib, "ssleay32.lib")
#pragma comment(lib, "libeay32.lib")

void test2()
{
    curl_global_init(CURL_GLOBAL_DEFAULT);

    CURL *curl;
    CURLcode res;
    curl = curl_easy_init();
    if (curl) 
    {
        /* First set the URL that is about to receive our POST. This URL can
        just as well be a https:// URL if that is what should receive the
        data. */
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");

        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);//忽略证书检查
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);

        /* Now specify the POST data */
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl");

        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl);
        if (res)
        {
            cout << "curl_easy_perform failed res = " << res << " ErrInfo:" << curl_easy_strerror(res) << endl;
        }
        else
        {
            cout << "curl_easy_perform success " << endl;
        }
        
        /* always cleanup */
        curl_easy_cleanup(curl);
    }
    curl_global_cleanup();
}

int main()
{
    test2();
    getchar();
    return 0;
}

 要配置curl的头文件路径和库路径,和openssl的库路径。

直接运行就好了。

 

四、总结

1)编译openssl比较费时间,这一步一定要做,不要想偷懒,按步骤一步一步来就好了。

2)运行curl测试程序时需要链接libcurlopenssl的那两个库。特别注意要把库放到程序运行目录中去。我最开始怀疑自己是不是没编译到包含openssllibcurl。一直在库目录上折腾,没有放到运行目录中去,折腾了将近一天。

3)查看自己编译的libcurl是否支持https,可以编译curl-all.sln中的curl项目,配置一样,要选openssl的。然后会编译出一个curl.exe。然后打开系统自带的cmd.exe,切换到生成curl.exe的目录,把两个openssl的库拷贝进来。执行红色框两个命令。出现下面的结果就表示你成功了。

 

 

目录
相关文章
|
Linux API C语言
由浅入深C系列五:使用libcurl进行基于http get/post模式的C语言交互应用开发
由浅入深C系列五:使用libcurl进行基于http get/post模式的C语言交互应用开发
|
消息中间件 Linux 网络安全
让终端支持https,移植OpenSSL和libcurl到嵌入式linux,遇到的问题总结
让终端支持https,移植OpenSSL和libcurl到嵌入式linux,遇到的问题总结
|
前端开发 应用服务中间件 Linux
nginx支持一个端口访问多个前端项目(http以及https)
最近做项目结构优化,前端项目都是部署在nginx上,想实现同一个端口可以访问多个前端项目.
|
负载均衡 Kubernetes 安全
服务网格ASM使用FAQ之(5):ASM网关支持在SLB侧创建HTTPS类型的监听
ASM网关提供HTTPS安全支持、证书动态加载,从而提升ASM网关安全性。除了在ASM网关侧绑定证书的方式之外, 还可以在负载均衡侧管理证书。 本文介绍如何支持ASM网关服务在负载均衡侧绑定证书, 并创建HTTPS类型的监听。
452 0
|
PHP
解决阿里云虚拟主机上WordPress配置支持Https
解决阿里云虚拟主机上WordPress配置支持Https
244 0
解决阿里云虚拟主机上WordPress配置支持Https
curl: (1) Protocol "https" not supported or disabled in libcurl
curl: (1) Protocol "https" not supported or disabled in libcurl
330 0
|
应用服务中间件 Linux 网络安全
nginx安装配置ssl模块支持https访问
nginx安装配置ssl模块支持https访问
338 0
nginx安装配置ssl模块支持https访问
|
安全 Java 数据建模
Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单
随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手,从HTTP升级到HTTPS,同时支持静态网站和SpringBoot应用,希望对大家有所帮助! 生成SSL自签名证书 虽然自签名证书浏览器认为并不是安全的,但是学习下SSL证书的生成还是很有必要的! 首先创建SSL证书私钥,期间需要输入两次用户名和密码,生成文件为blog.key;
Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单
|
运维 Java 应用服务中间件
Spring Boot 支持 HTTPS 如此简单,So easy!
Spring Boot 支持 HTTPS 如此简单,So easy!
3186 0
Spring Boot 支持 HTTPS 如此简单,So easy!
|
Java 应用服务中间件
一分钟开启Tomcat https支持
1、修改配置文件 打开tomcat/conf/server.xml配置文件,把下面这段配置注释取消掉,keystorePass为证书密钥需要手动添加,创建证书时指定的。
160 0

热门文章

最新文章