1、概述

OpenSSL是一个开放源代码的软件库包,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,所以应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。

SSL是啥?大家知道我们访问网站的时候,以HTTPS开头的表示你和服务器之间传输的数据经过了加密,这里所使用的加密协议就是SSL(Secure Sockets Layer,后来又推出了它的后续版本,改名叫TLS)。也就是说,把HTTP协议经过一层SSL协议进行加密包装,就变成了HTTPS。当然,SSL/TLS还用在很多协议中,例如VPN、加密的电子邮件协议等。

在SSL协议中,我们使用了很多密码学手段来保护数据,其中包括对称密码、公钥密码、数字签名、证书、完整性校验、伪随机数生成等。由于这些算法和操作都非常复杂,于是开源社区就开发了一套库,这个库里面提供了很多现成的标准方法,其他开发者只要用正确调用这些方法,就可以实现SSL协议中的各种加密/解密操作了。这个库就是开源的OpenSSL库。

如何使用openssl?
一般情况下,直接到 Win32 OpenSSL 上下载已经编译好的 OpenSSL 库使用即可。但在某些情况下,可能需要适当的修改或者裁剪 OpenSSL,那么编译它就成为了一个关键问题。
2、准备工作(win64为例)

1、下载并安装 Visual Studio(以 VS 2013 为例)。

2、下载并安装 ActivePerl,下载地址:http://www.activestate.com/activeperl/downloads ,我下载的版本是5.24.3.2404

安装过程一律选默认即可。

ActivePerl一个perl脚本解释器。其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让用户编写出适用于unix,windows,linux系统的CGI程序来。

安装的只是perl的一个解释程序啦,外观上也不会发生什么变化,你在windows的cmd界面里输入perl -v可查看你所安装的版本。显示如下图:

3、下载并安装 Nasm 汇编器,下载地址:http://www.nasm.us/ ,我下载的是nasm-2.14-installer-x64.exe

这里安装完成后,将安装目录 C:\Program Files\NASM(以你的安装目录为准) 添加到系统环境变量 Path 中。

配置环境变量:

右键计算机选择属性,选择高级系统设置,选择高级选项,再选择右下方环境变量选项,给系统变量选择新建,变量名随便起不冲突即可(如NASM),变量值填写安装目录(如 C:\Program Files\NASM)

注:若桌面没有计算机选项的可通过控制面板 — 系统和安全 — 系统到该目录。或开始 — 计算机 — 右键 — 选择属性。

4、下载并安装 OpenSSL,下载地址:https://www.openssl.org/source/ ,我下载的版本是 openssl-1.0.2p.tar.gz

下载完成后,将 OpenSSL 包解压至 C:\openssl-1.0.2p,便可以进行编译了。

注意: 解压后的目录中有两个文件 - INSTALL.W32、INSTALL.W64,包含了 OpenSSL 的各个编译步骤。

注意:当前最新版本为openssl-1.1.1.tar.gz,解压后的目录中并没有INSTALL.W32、INSTALL.W64两个文件,该版本安装方法具体可参考README和INSTALL两个文件。
3、编译OpenSSL
3.1、配置编译环境

我们用VS2013来作为编译工具,使用VS2013对应的命令行进入,操作步骤如下:

开始 — 所有程序 — Visual Studio 2013 — Visual Studio Tools — 选择一个命令提示工具

进入命令提示符,然后定位至OpenSSL的安装目录,如 C:\openssl-1.0.2m

注意:这里不建议使用cmd命令行,使用cmd命令行在执行nmake -f ms\nt.mak编译时,会提示’nmake’ 不是内部或外部命令,也不是可运行的程序。(需要配置环境变量啥的,没有试,这里直接使用VS 2013命令行)
3.2、配置编译文件和模式

输入如下命令:

perl Configure VC-WIN64A no-asm --prefix=F:\openssl

1

参数说明:
VC-WIN64A表示Windows 64位系统,32位系统请换成VC-WIN32,若要使用debug版本,请使用debug-VC-WIN64A或debug-VC-WIN32
no-asm 表示不用汇编,不设置此属性,可能会导致编译不过(建议使用)
–prefix=F:\openssl将其安装到F盘的openssl文件夹下,省略会安装在默认路径下

显示如下图:

3.3、生成编译配置文件

若为Windows 64位系统,执行

ms\do_win64a.bat

1

若为Windows 32位系统,执行

ms\do_ms.bat

1

执行这一步之后,在ms目录下会生成nt.mak和ntdll.mak两个编译配置文件
nt.mak 用于生成静态lib库
ntdll.mak 用于生成动态dll库
3.4、编译

静态库

nmake -f ms\nt.mak

1

动态库

nmake -f ms\ntdll.mak

1

注:这里也可以直接执行如下命令,将静态库或动态库直接安装到指定目录(或默认目录):

//静态库
nmake -f ms\nt.mak install
//或
//动态库
nmake -f ms\ntdll.mak install

1
    2
    3
    4
    5

3.5、测试

测试静态库:

nmake -f ms\nt.mak test

1

测试动态库:

nmake -f ms\ntdll.mak test

1

若最终显示 passed all tests 则说明生成的库正确:

3.6、安装

安装静态库:

nmake -f ms\nt.mak install

1

安装动态库:

nmake -f ms\ntdll.mak install

1

编译、安装完成后,即可在 F:\openssl目录下看到生成的相关文件和文件夹,如下图:

注:F:\openssl目录为执行 perl Configure VC-WIN64A no-asm --prefix=F:\openssl 时指定的目录,若没有通过–prefix=指定目录,会安装到一个默认目录(命令行内会有提示),如下图显示默认安装到了 C:\usr\local\ 目录


3.7、其他

清除上次静态库的编译,以便重新编译:

nmake -f ms\nt.mak clean

1

清除上次动态库的编译,以便重新编译:

nmake -f ms\ntdll.mak clean

————————————————
版权声明:本文为CSDN博主「mayue_csdn」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mayue_web/article/details/83997969

Windows下编译openssl库相关推荐

  1. 如何在Windows下编译OpenSSL?

     OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  2. 如何在Windows下编译OpenSSL

    OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言 ...

  3. Windows 下编译 OpenSSL

    简述 OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的 ...

  4. Windows下编译OpenSSL(使用VS2013或VS2008)

    转自https://www.cnblogs.com/findumars/p/4299976.html 简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和 ...

  5. 在Windows下编译OpenSSL(VS2005)【转】

    如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器) 1.安装ActivePerl//初始化的时候,需要用到perl解释器 2.使用VS2005下的Visual Studi ...

  6. windows下编译skia库

    windows下编译skia库 环境需求: 1.安装python2.7.x: python3系列可能又某些库不支持,所以推荐使用python2.7.15(最新). 如何检查是否安装python: 1. ...

  7. C++ Boost库:windows下编译Boost库

    文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...

  8. windows下编译openssl

    1. 下载ActivePerl 链接地址:ActivePerl 一路Next完成安装. 在终端中执行命令perl -v,确认安装成功 2. 环境变量 将VS的路径写入环境变量PATH: D:\Prog ...

  9. Windows下编译boost库

    需要编译的boost库 以下的库必须单独编译: Boost.Chrono Boost.System Boost.Context Boost.ProgramOptions Boost.Filesyste ...

最新文章

  1. html怎么查看cad文件,如何直接查看CAD格式的图纸
  2. 你未必知道的CSS故事:揭开leading的面纱
  3. js判断时间是早上还是下午_牛奶早上喝好,还是晚上喝好?没想到“最佳时间”是这个点,颠覆了!...
  4. centos mysql 主从配置_centos7.4安装mysql8,并设置主从配置
  5. CS224N刷题——Assignment1.4_情感分析
  6. java基础学习_GUI_如何让Netbeans的东西Eclipse能访问、GUI(图形用户接口)_day25总结...
  7. linux开机进入不了系统安装软件,揭秘linux系统启动流程,面试官问起来再也不怕了...
  8. Chrome Vimium 快捷键
  9. 后续:安装ORK功能包踩坑之路和解决方案
  10. mac电脑如何配置mysql环境变量
  11. 新站多久开始发外链?新站什么时候开始发外链
  12. log4j从1.x平滑升级至2.x
  13. IntelliJ IDEA 设置代码提示或自动补全的快捷键 (附IntelliJ IDEA常用快捷键)
  14. 49-从哥尼斯堡七桥问题开始
  15. edu邮箱填写服务器,学生邮箱Outlook使用设置
  16. HTML5 极简的JS函数
  17. pandas中如何选取某几列_Pandas 2:如何在数据集中选取列
  18. 关于苹果ARKit的功能梳理和展望
  19. 小红书KOC和KOL这两者怎样进行投放?
  20. python格式化方式

热门文章

  1. ftp put 550 Access is denied
  2. java逆向_Java逆向基础之异常
  3. maya崩溃自动保存路径_maya 使用swig将插件编译成pyd,无缝使用内置数据实现加速计算模块...
  4. php 出错处理,PHP 错误处理机制
  5. 一维二维_更高效的一维、二维材料过渡态搜索
  6. 锁 mysql_Mysql的锁(S锁和X锁的区别)
  7. ubuntu dhcp ping 不通 自己_??2、DHCP安装和配置
  8. 上传文件到华为云云服务器,上传文件到云服务器
  9. linux redis客户端_为什么单线程Redis能那么快?
  10. C学习杂记(五)形参实参笔试题