Windows7系统下安装OpenSSL攻略

前提:安装了vc++6.0(配置时用到其中工具)、ActivePerl 、openssl-1.0.1c.zip
  
过程:
一、准备:下载并安装perl,解压openssl-1.0.1c
二、运行“cmd”,cd改变目录到openssl-1.0.1c源码所在目录
三、执行" perl Configure VC-WIN32 --prefix=c:/openssl-1.0.1c" 目的是指定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下编译完成了。
  最后一步编译时可能出现错误:“NMAKE : fatal error U1077: 'ml' : return code '0x1' Stop.”,产生这种错误的可能原因是vc6的bin目录下没有ml.exe这个文件。该文件包含在MASM程序中。我的解决办法是到网上下载了一个MASM程序( http://www.masm32.com/masmdl.htm),安装上之后把ml.exe拷贝到VC6的bin目录下即可解决。

若仍未解决:

解决方法:

google几次,也没找到解决方法。仔细分析出错信息,原来是MASM的版本过低, 我安装的MASM32中

C:/masm32/bin>ml

Microsoft (R) Macro Assembler Version 6.14.8444

Copyright (C) Microsoft Corp 1981-1997.  All rights reserv

版本是 6.14.8444,而错误提示中推荐8.00 or later ,所以只好下载MASM的高版本.这里安装MASM8.0

MASM8.0可以从微软网站自由获取,地址如下:

http://www.microsoft.com/downloads/details.aspx?familyid=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en

获取后,得到的是安装包MASMSetup.exe,没有装VC2005的话,无法安装,解决方法如下:

用winrar解压缩MASMSetup.exe得到:setup.exe

继续用winrar解压缩setup.exe 得到:vc_masm1.cab

继续用winrar解压缩vc_masm1.cab得到:FL_ml_exe__.....  (很长的文件名,省略),将这个文件重命名为ml.exe

测试得到的ml.exe , 应该显示: Microsoft (R) Macro Assembler Version 8.00.50727.104

将ml.exe 拷贝到你的工作目录,即可正常使用。

将生成的ml.exe拷贝到C:/masm32/bin目录下,将原来的ml.exe覆盖即可。

针对我试验了这么多次总会出现错误,又搜集了网友的意见把环境变量重新设置一下。

set path=%path%;c:/openssl-1.0.1c/;c:/masm32/bin

   编译动态库: nmake -f ms\ntdll.mak
   编译静态库: nmake -f ms\nt.mak

   测试动态库: nmake -f ms\ntdll.mak test
   测试静态库: nmake -f ms\nt.mak test

   安装动态库: nmake -f ms\ntdll.mak install
   安装静态库: nmake -f ms\nt.mak install

3. 如何使用openssl?
a) library path -> C:\devdiv\openssl-0.9.8i\out32
b) include path -> C:\devdiv\openssl-0.9.8i\include
c) 库文件 -> libeay32.lib, ssleay32.lib

4. 配置文件在哪里?
C:\devdiv\openssl-0.9.8i\apps\openssl.cnf

5. 关于key:
key一般分为public key和private key,在openssl中,private key中包含了public key的信息,所以public key不需要单独创建. 如何创建一个RSA key?
openssl.exe genrsa -des3 -out privatekey.pem 2048  (需要添加密码保护)
openssl.exe genrsa -out privatekey.pem 2048

6. 关于certificates(证书文件), 如何创建一个证书呢?
一般流程是:
a. 创建一个private key
b. 创建一个certificate signing request(证书请求), 这个需要a#中创建的private key.因为证书中需要包含public key,
创建的priavate key中有这些信息.
(openssl.exe req -new -key privatekey.pem-out cacert.csr)
c. 把创建好的证书请求拿到CA(certificate authority)证书认证机构审批.

7. 如何做一个自签名的证书呢?
openssl.exe req -new -x509 -key privatekey.pem -out cacert.pem -days 1095
(Note: privatekey.pem需要自己创建)

参考博客: http://kb.cnblogs.com/a/2320065/

http://finebree.blog.163.com/blog/static/878793552008102474254280/

http://blog.csdn.net/derryzhang/article/details/6430446

http://www.cppblog.com/woomsg/archive/2008/11/03/64508.html

你可能感兴趣的:(OpenSSL)