准备工作:
- 源码下载:1.0.2-f (source): https://www.openssl.org/source/
- 操作系统: Windows 7 企业版
- 软件:
- Visual Studio 2010;
- 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)
可以选择将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是否安装成功。
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)