OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在Win32 OpenSSL上下载已经编译好的OpenSSL库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关键问题。下面主要讲述如何在Windows上编译OpenSSL库。
步骤- 在微软网站下载并安装Visual Studio,我用的是2013版。
- 下载并安装ActivePerl。
下载地址:http://www.activestate.com/activeperl/downloads
我下载的是:5.22.1.2201 Windows Installer (MSI)
打开命令提示符,将其定位到D:\Program Files\Perl\eg
目录下,执行perl example.pl
,若提示:Hello from ActivePerl!
则说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了。 - 下载并安装Nasm汇编器,并将
D:\Program Files\NASM
添加到系统环境变量Path中。
下载地址:http://www.nasm.us/ 。
我下载的是:nasm-2.12.01-installer-x86.exe。 - 下载并安装OpenSSL。
下载地址:http://www.openssl.org/。
我下载的是:openssl-1.0.2h.tar.gz (SHA256) (PGP sign) (SHA1)
在完成所有上述步骤,我们就可以解压缩OpenSSL包(解压至:E:\openssl-1.0.2h
),在对它进行修改便可以编译了。解压后的目录中有两个文件INSTALL.W32、INSTALL.W64需要被关注。打开其中任何一个文件,你会看到如何编译OpenSSL的各个步骤。
- 将命令提示符定位到
E:\openssl-1.0.2h
。 - 输入
perl Configure VC-WIN32 --perfix=E:\OpenSSL
(将其安装到E:\OpenSSL)。 - 输入ms\do_nasm。
- 将命令提示符定位到
D:\Program Files\Microsoft Visual Studio 12.0\VC\bin
, 然后输入vcvars32.bat
(如果没有这一步,会提示nmake不是内部或外部命令)。 - 再次将命令提示符定位到
E:\openssl-1.0.2h
。 - 输入
nmake -f ms\ntdll.mak
,执行完后会在openssl-1.0.2h
目录下生成一个out32dll的文件夹,里面包含了一些静态库、动态库和.exe文件。 - 输入
nmake -f ms\ntdll.mak test
,若最终显示passed all tests
说明生成的库正确。 - 输入
nmake -f ms\ntdll.mak install
,则会在E:\OpenSSL
目录下生成bin、include、lib、ssl四个文件夹。
注意:
- 以上编译的是release库,若编译debug库,则将以上第2步中的
VC-WIN32
改成debug-VC-WIN32
即可。 - 若编译静态库,则用
ms\nt.mak
替换掉上面用到的ms\ntdll.mak
即可。 - 若生成不带汇编支持的库,则需将以上第2、3步用
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL
和ms\do_ms
替换即可。 - 在
E:\openssl-1.0.2h\tmp32dll
文件夹下包含相应的汇编文件。