一、OpenSSL简介
OpenSSL 是一个开源的软件库,提供了一系列用于安全通信的加密和解密功能,包括 SSL(Secure Sockets Layer)和 TLS(Transport Layer Security)协议的实现。它由一组核心库和一组命令行工具组成,可以用于创建和管理数字证书、进行加密通信、生成密码哈希、实现安全连接等。
OpenSSL 的功能包括但不限于:
-
加密和解密:提供了对称加密和非对称加密算法的实现,如 AES、DES、RSA、DSA 等,可以用于加密和解密数据。
-
数字证书管理:支持 X.509 数字证书的创建、签发、验证和撤销,可以用于建立安全的网络连接和身份验证。
-
SSL/TLS 协议实现:提供了 SSL 和 TLS 协议的实现,可以用于安全地传输数据,保护通信的机密性和完整性。
-
哈希函数:提供了各种哈希算法的实现,如 MD5、SHA-1、SHA-256 等,可以用于生成密码哈希和数字签名等。
-
随机数生成:提供了高质量的随机数生成器,用于生成安全的随机数。
OpenSSL 在许多网络应用和系统中被广泛使用,包括 Web 服务器(如 Apache、Nginx)、邮件服务器(如 Postfix、Sendmail)、操作系统(如 Linux、BSD)、VPN(虚拟私人网络)软件等。它是开源的,可在大多数操作系统下免费获取和使用。
二、编译使用OPENSSL
2.1、下载OPENSSL
OpenSSL官方源码下载地址:https://www.openssl.org/source/
本人下载使用的是3.1.0版本
2.2、下载perl
编译OpenSSL需要用到Perl语言,需要安装支持Perl的环境。Windows下比较多用的是activeperl,但是推荐使用Strawberry Perl:
Strawberry Perl官方下载地址:https://strawberryperl.com/
安装完会自动添加环境变量。
2.3、下载安装NASM
编译时可以使用使用汇编器编译有更快的速度,NASM 是唯一受支持的汇编器,安装完后要把安装的目录添加到环境变量里。 本次暂时不使用汇编语言,编译可能存在问题。
NASM官方下载地址:https://www.nasm.us/
2.4编译OPENSSL
编译3.1.0版本的OPENSSL,使用visual c++ 2017版本的编译器。
右键选择使用管理员权限打开"适用于VS2017的x64本机工具命令提示"
先进入到刚才下载解压的OPENSSL路径下,使用Perl命令配置OpenSSL,--prefix可以指定生成的库的输出目录,不指定的话默认输出到C:/Program Files (x86)/Common Files/SSL。:
perl Configure VC-WIN32 --prefix=你要最后生成的输出目录
如果要编译64位库的话,VC-WIN32改成VC-WIN64A:
perl Configure VC-WIN64A --prefix=你要最后生成的输出目录
如果要编译静态库的话,加上no-shared:
perl configure no-shared VC-WIN32 --prefix=你要最后生成的输出目录
接着输入命令编译(编译需要很长一段时间):nmake
测试命令(也需要很长时间):nmake test (没有截图)
最后输入命令把编译生成的库安装到输出目录:nmake install
OpenSSL就编译好了,我们可以进入安装目录,用命令openssl version查看编译好的OpenSSL的版本。
再看看整个安装目录下的内容:限于说明文档和头文件目录下文件太多,没有全部显示