Windows下配置OpenSSL1.1.1+Curl7.61.0访问HTTPS

 

前言

       这几天使用百度的人脸识别API,他们在线接口是使用HTTPS进行GET和POST,官方的C++ SDK是使用Openssl+Curl进行访问的,于是写下这篇记录一下配置过程吧!

Openssl简介

       Curl要访问HTTPS需要用到SSL支持库,目前curl提供了两种使用支持库的方式,一种是Windows自带的WinSSL,另一种是第三方SSL库OpenSSL,本次教程使用的是第三方OpenSSL库,安全性高、移植性高。OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

Curl简介

      首先声明一下,本人使用的编程平台是VS2017,所以实际使用的是LibCurl,Curl是一个应用,是独立的。

      LibCurl为一个免费开源的,客户端url传输库,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP等协议。同curl一样,libcurl也支持SSL证书,HTTP POST, HTTP PUT,FTP上传,基于表单的HTTP上传,代理(proxies)、cookies、用户名/密码认证(Basic, Digest, NTLM等)、下载文件断点续传,上载文件断点续传(file transfer resume),http代理服务器管道(proxy tunneling)等。libcurl是高度可移植的,可以工作在不同的平台上,支持Windows,Unix,Linux等。libcurl是免费的,线程安全的,IPV6兼容的,同事它还有很多其他非常丰富的特性。libcurl已经被很多知名的大企业以及应用程序所采用。

OpenSSL编译

    如果是一般使用,我是不推荐自己编译的,比较麻烦,可以直接使用别人编译好的,成功性高也节约时间,如果是需要订制和裁剪的,可以看下列教程。使用最新的OpenSSL和VS2017进行编译

1.编译好的Windows OpenSSL库下载地址:  https://www.npcglib.org/~stathis/blog/precompiled-openssl/          

                                                                               http://slproweb.com/products/Win32OpenSSL.html                                             

Light后缀是轻量版本,不带后缀是完整版本,一般选用完整版本

2.OpenSSL1.1.1编译

需要准备的东西

1.ActivePerl:https://www.activestate.com/activeperl/downloads

①进去之后选择下面的最新版本,然后点击"Windows Installer(EXE)"下载

②安装过程就是一路Next,不过记得选择加入Path环境变量,装完之后命令提示符输入perl不会出现"'perl' 不是内部或外部命令,也不是可运行的程序或批处理文件。"代表安装成功!

2.OpenssL:https://www.openssl.org/source/

①进去之后选择最新版本,文件名是“openssl-XXXX.tar.gz”

②下载完成后解压缩备用

3.如果需要使用汇编指令,则还需下载Nasm 汇编器:https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D

①进去之后选择最新版本,然后最底下是Win32和Win64版本按需选择。

②进去之后一路Next,装完之后记得把NASM根目录加入Path环境变量里

4.编译OpenSSL1.1.1:

①打开VS命令提示符,首先CD到刚才解压好的OpenSSL根目录

②输入:perl Configure 平台 参数  --prefix=安装绝对路径

    例子:perl Configure VC-WIN64A no-asm --prefix=E:\Application\Library\openssl

    这条命令用于生成configdata.pm和makefile文件

    平台有: VC-WIN32、VC-WIN64A等,具体可看帮助文档

    参数有:no-asm表示不使用汇编指令,其余的可看帮助文档

    如果正常,应有如下画面:

当然,第一次可能会弹出白色的找不到nmake之类的,按提示下载一次即可!

③如果要改成静态库,打开configdata.pm文件,搜索“/MD”改成“/MT”就是静态编译了。

④之后开始编译,由于最新版的VC已经没有ms功能了,按照现有网络教程输入ms的就会出现找不到命令,所以直接输入nmake即可,会根据第二步生成的configdata.pm和makefile文件进行编译(这次编译还是编译到源码目录下,所以不要去第二步设置的安装目录找啦!),时间比较久,2-5分钟不等。

⑤编译完成后开始安装到第二步设置的目录里,输入nmake install安装

至此,OpenSSL编译安装完成!

Curl编译

这个就比较简单了

①复制刚才编译好的OpenSSL的include\openssl文件夹到curl\include下

②打开curl\projects\Windows,选择你的VC版本,然后打开lib\libcurl.sln,选择你的平台和版本,右键项目生成即可

③如果使用WindowsSSL也行,直接编译就行,比较方便但是不支持XP系统下访问HTTPS。安全性能也比OpenSSL差一些。

总结

    一路下来也碰到很多问题,不过总算搞定啦~贴一张效果图吧!

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值