今天在windows下安装OpenSSL将过程和遇到的问题及解决方法简记之。
前提:安装了vc++6.0(配置时用到其中工具)
资源:
  openssl-0.9.8e
  ActivePerl-5.8.8.822-MSWin32-x86-280952
过程:
一、准备:下载并安装perl,解压openssl-0.9.8e
二、运行“cmd”,cd改变目录到openssl-0.9.8e源码所在目录
三、执行" perl Configure VC-WIN32 --prefix=c:/openssl-0.9.8e" 目的是指定OpenSSL编译好后的安装路径。
四、运行“ms\do_ms”
五、运行“nmake -f ms\ntdll.mak”
  1、此时出现“nmake不是内部或者外部命令或者.bat文件” 的情况
  解决方法:nmake.exe的文件,这个文件应该位于C:\Program Files\Microsoft Visual Studio\VC98\Bin目录中,配置环境变量即可。操作:右键单击我的电脑-->属性-->高级-->环境变量--系统变量(找到path)-->编辑,将C:\Program Files\Microsoft Visual Studio\VC98\Bin加到未尾(注意要和前一个路径用";"隔开,并以";"结束;最后要提醒一点,一定要重启机器,新的path才会生效;
  2、 此时以为问题解决,重新执行命令“nmake -f ms\ntdll.mak”发现弹出警告框,标题为cl.exe提示缺少mspdb60.dll。
  解决缺少mspdb60.dll问题将目录\Common\MSDev98\Bin下的mspdb60.dll文件,复制到C:\Program Files\Microsoft Visual Studio\VC98\BIN下,VC6.0即可正常运行。
  3、此时以为问题解决,重新运行“nmake -f ms\ntdll.mak”命令,发现出现问题,
  “ms\uplink.c(11) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop.错误的时候”
    解决:先运行vcvars32命令,vcvars32.bat用于设置VC命令行编译的环境变量。
    重新运行“nmake -f ms\ntdll.mak”命令,大功告成。执行通过
  4、检查下是否成功,执行命令:“nmake -f ms\ntdll.mak test”。
六、运行“nmake -f ms\ntdll.mak install”安装编译后的OpenSSL到指定目录。
七、查看安装结果C:\openssl-0.9.8.e下包含了三个文件夹Bin、include、lib。bin下包括openssl.exe(openssl指令程序)、ssleay32.dll(ssl协议动态库)、libeay32.dll(密码算法库)。lib下包括libeay32.lib,ssleay32.lib。Include目录包括了OpenSSL开发设计的头文件。
  至此,OpenSSL在windows下编译完成了。

  

  开发环境配置

  在建立的项目中,菜单栏,“工具--选项--目录”设置include和lib指定到C:\openssl-0.9.8.e下包含的文件夹include和lib。

  做一个简单的测试程序并设置连接如下图

  

openssl Windows国内镜像_重定义

 

 

 

  补充:
  1、在第3步的命令一定要注意大小写;
  2、在第5.3步的时候可能会提示不同的文件未找到,这时可以多尝试几次"vcvars32"命令。开始的时候,编译到第5.3步时提示EC_PRIVATEKEY_it重定义,原因是第3步命令输入不对,要区分大小写的
  3、上述的IDE是vc6.0,也可以用vs2008,其他IDE没有测试,不过记得第5步中环境变量的设置。如果是VC6.0以外的IDE编译的话出现“return code '...' Stop”错误,请再次执行"vcvars32"命令。
  4、 如果不太习惯在windows下使用linux下的这种编译方式(其实windows底层也是这个样子,只是微软的IDE屏蔽了),那么可以去下载openssl的windows安装文件,请自行搜索“Win32OpenSSL”关键字。
  5、有了现成的加解密,就不用自己去实现了,而且现在ssl使用这么广泛,应该不会有漏洞吧?接下来整理怎么使用openssl。