Windows系统编译Openssl源码

1 篇文章 0 订阅
1 篇文章 0 订阅

准备工作:

  1. 源码下载:1.0.2-f (source): https://www.openssl.org/source/
  2. 操作系统: Windows 7 企业版
  3. 软件:
    1. Visual Studio 2010;
    2. perl5.2 

软件安装:

OpenSSL 支持32 和X64两种编译模式。但无论那种模式都要用到VS的command。如果不匹配会导致编译错误。

  • Visual Studio 2010, 32-bit: 打开Visual Studio Command Prompt (2010)
  • Visual Studio 2010, 64-bit: 打开 Visual Studio x64 Win64 Command Prompt (2010)
打开以上所选VS command之后,就可以准备开始编译源码。
可以选择将openssl编译成动态链接库或者静态链接库。如果自己学习及测试使用,建议使用编译成32位静态链接库,脚本如下:
* 切换到源码陆空T:\openssl-src-32
* 运行perl Configure VC-WIN32 --prefix=F:\Build-OpenSSL-VC32-Release-DLL. This will make F:\Build-OpenSSL-VC32-Release-DLL your output directory; it should be fairly obvious how you can change that.
* 运行 ms\do_ms
* 因为使用了1.0.2版本, 所以要运行 ms\do_nasm.(1.0.1版本不需要)
* 运行 nmake -f ms\nt.mak (到这步位置,已经完成编译)
* 运行 nmake -f ms\nt.mak install 完成安装。

SSL 连接测试:

OpenSSL有一些用于测试的demo,以及内置的命令。可以用这些命令来验证openssl是否安装成功。


1. cd F:\openssl-0.9.8zg\apps
2. 建立自己的CA
1. perl ca.pl –newca


3. 生成客户端和服务器端证书申请:
1. openssl req -newkey rsa:1024 -out req1.pem -keyout sslclientkey.pem
2. openssl req -newkey rsa:1024 -out req2.pem -keyout sslserverkey.pem

4. 签发客户端和服务端证书:
1. openssl ca -in req1.pem -out  sslclientcert.pem
2. openssl ca -in req2.pem -out  sslservercert.pem

5. 运行ssl服务端和客户端:
1. openssl s_server -cert sslservercert.pem -key sslserverkey.pem -CAfile demoCA/cacert.pem -ssl3 (窗口1)
2. openssl s_client -ssl3 -CAfile demoCA/cacert.pem (窗口2)



成功的现象:
    运行客户端程序后,如果正确,会打印类似如下内容:
SSL-Session:
   Protocol  : SSLv3
Cipher    : DHE-RSA-AES256-SHA
    Session-ID: A729F5845CBFFBA68B27F701A6BD9D411627FA5BDC780264131EE966D1DFD6F5
    Session-ID-ctx: 
    Master-Key: B00EEBD68165197BF033605F348A91676E872EB48487990D8BC77022578EECC0A9789CD1F929E6A9EA259F9F9F3F9DFA
    Key-Arg   : None
    Start Time: 1164077175
    Timeout   : 7200 (sec)

    Verify return code: 0 (ok)


此时,输入数据然后回车,服务端会显示出来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值