设置openssl环境变量(Windows平台OpenSSL编译)
设置openssl环境变量(Windows平台OpenSSL编译)2.安装编译工具下载网址为:https://www.openssl.org/source/,最新的版本是openssl-3.0.2,2022年3月15日发布。OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用同样熟悉的东西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平台,这使得OpenSSL具有广泛的适用性。但习惯C语言总比使用C 重新写一个跟OpenSSL相同功能的软件包轻松不少。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性 可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
Eric A. Young和Tim J. Hudson自1995年开始编写后来具有巨大影响的openssl软件包,这是一个没有太多限制的开放源代码的软件包。Eric A. Young 和Tim J. Hudson是加拿大人,后来由于写OpenSSL功成名就之后就到大公司里赚大钱去了。1998年,OpenSSL项目组接管了OpenSSL的开发工作,并推出了OpenSSL的0.9.1版,OpenSSL的算法已经非常完善,对SSL2.0、SSL3.0以及TLS1.0都支持。
OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用同样熟悉的东西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平台,这使得OpenSSL具有广泛的适用性。但习惯C语言总比使用C 重新写一个跟OpenSSL相同功能的软件包轻松不少。
OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。
作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
- 下载OpenSSL源码
下载网址为:https://www.openssl.org/source/,最新的版本是openssl-3.0.2,2022年3月15日发布。
2.安装编译工具
编译OpenSSL需要安装一系列的编译工具,罗列如下:
a) 安装C 编译器
这里安装的是 Visual Studio 2017,安装过程不做赘述。
b) 安装ActivePerl
下载网址是:http://www.activestate.com/activeperl/downloads,当前最新版本是5.34,将ActivePerl添加到系统的Path环境变量中,其值为:C:\Perl64\bin。
c) 安装NASM
下载网址是:https://www.nasm.us/,当前最新版本是2.15.05。将NASM添加到系统的Path环境变量中,其值为:C:\Users\klogin\AppData\Local\bin\NASM。
3.设置Visual Studio 2017的环境变量
一种方法是利用vcvarsall.bat命令来设置,另外一种方法是手工设置。
第一种方法实验失败,这里采用第二种方法,手工设置环境变量。
需要手工设置Windows 10的INCLUDE和LIB这两个环境变量,其中前者用来寻找头文件,后者用来寻找LIB文件。
INCLUDE环境变量设置的值如下图所示:
INCLUDE环境变量设置
LIB环境变量设置的值如下图所示:
LIB环境变量设置
Path环境变量添加下列值,编译时候要用到。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64
4.开始编译
a) 从控制台界面切换到OpenSSL源码根目录,执行命令:
perl Configure VC-WIN64A,执行OpenSSL的配置文件,得到OpenSSL的Makefile文件。
这里安装的是64位版本。
OpenSSL配置界面
如果只想编译出静态库libcrypto.lib,libssl.lib,则加入命令参数no-shared,如:
perl Configure VC-WIN64A no-shared。
b) 控制台执行命令,nmake,编译OpenSSL库
执行过程如下所示:
OpenSSL的编译过程
编译完成之后,得到x64版本的libcrypto.dll,libssl.dll,libcrypto.lib,libssl.lib。
c) 控制台执行命令,nmake test,测试OpenSSL库
d) 控制台执行命令,nmake install 将OpenSSL库安装在C:\Program Files\OpenSSL目录,并删除编译过程中产生的中间文件。