下载openssl-1.0.2r,在readme中找到对应平台的说明文件并打开,
我电脑是win10,64位,所以打开的是INSTALL.W64,其中安装步骤如下:
> perl Configure VC-WIN64A
> ms\do_win64a
> nmake -f ms\ntdll.mak
> cd out32dll
> …\ms\test
在执行上述操作之前,需要安装perl,nasm,vs2015(其他vs版本也可以),
安装完成之后把perl.exe,nasm.exe,nmake.exe各自所在的路径加入环境变量。
1.以管理员身份打开“vs2015 x64 本机工具命令提示符”,之后的命令都在此窗口执行
2.cd进入openssl-1.0.2r目录
3.输入命令时注意大小写,我不确定大小写是否影响最终结果,规范最好
4.输入perl Configure VC-WIN64A并回车之后,会出现Configured for VC-WIN64A表示成功,其他的可能表示出错
5.输入ms\do_win64a并回车,
6.输入nmake -f ms\ntdll.mak并回车之后,窗口开始跑数据,需要等待几分钟,如果没有出现等待,极有可能是出错了
7.后面两步是验证,进入out32dll目录,然后返回上一层目录,
并执行该层目录的ms文件夹内的test程序进行测试,通过则会显示pass all test
在vs项目属性里,添加h文件路径,以及lib文件路径,在文件中以#pragma comment(lib, “”)方式引用lib文件(或在项目属性链接里添加*.lib文件,效果一样)
openssl需要的h文件是ssl.h,需要的lib文件和dll文件是libeay32和ssleay32,
其中dll文件需要拷至项目源文件目录下(也就是项目的.h,.cpp文件所在目录)
如果上述中的任何一步有异常,则需要重新考虑一下问题原因
1.相关程序未安装
2.环境变量中未添加相关的路径
3.openssl源文件下载了错误的版本
4.大小写问题,或者没注意字符输错了,最好手动输入,不要复制粘贴
5.未在vs的命令提示符窗口输入命令
6.误操作之后在openssl文件夹内有垃圾文件干扰
最后很重要的一点,欲速则不达,耐心一点,我尝试了一天,baidu了各种各种,最后静下心来总结,才完成这一步
使用SSL_read读取数据时,即使参数的缓存足够大,SSL_read也可能不会等到缓存填满时才返回
假设缓存是1024个字节,SSL_read返回值可能在0<return<=1024之间,后续可能还有数据,响应注意