OpenSSL 1.1.0 是 OpenSSL 项目的一个重要版本,于 2016 年 8 月 25 日发布。这个版本引入了许多新的功能和改进,同时也移除了一些旧的功能,以提高安全性、性能和易用性。以下是 OpenSSL 1.1.0 的一些主要特点和变化:
主要特点
API 稳定性:
OpenSSL 1.1.0 引入了一个新的 API 和 ABI 约束,确保未来的 1.1.x 版本不会破坏现有的应用程序。这使得开发者可以更放心地使用 OpenSSL 1.1.0 及其后续版本。
多线程支持:
改进了多线程支持,提供了更好的线程安全性和性能优化。
TLS 1.3 支持:
OpenSSL 1.1.0 是首个支持 TLS 1.3 草案的版本。虽然 TLS 1.3 最终规范在 1.1.1 版本中才正式支持,但 1.1.0 已经为 TLS 1.3 做了初步准备。
加密算法改进:
添加了对新的加密算法的支持,例如 ChaCha20 和 Poly1305。
提高了现有加密算法的性能,特别是 AES-GCM 和 RSA。
弃用和移除旧功能:
移除了对 SSLv2 和 SSLv3 的支持,因为这些协议存在严重的安全漏洞。
移除了对一些过时的 API 的支持,例如 BIO_f_buffer 和 BIO_s_connect。
配置和编译改进:
改进了配置脚本,使其更易于使用和扩展。
支持更多的平台和编译器,提高了跨平台兼容性。
内存管理:
改进了内存管理,减少了内存泄漏的风险,并提高了内存使用的效率。
主要变化
API 变化:
许多函数的签名和行为发生了变化。例如,EVP_CIPHER_CTX 和 EVP_MD_CTX 现在是不透明的结构体,不能再直接访问其内部成员。
新增了 EVP_PKEY 相关的函数,简化了公钥操作。
配置选项:
新增了 no-deprecated 配置选项,可以禁用所有已弃用的功能。
新增了 enable-weak-ssl-ciphers 配置选项,允许启用弱加密算法。
性能优化:
优化了 SSL/TLS 握手过程,减少了握手时间和资源消耗。
优化了证书验证过程,提高了验证速度。
编译 openssl 需要 perl 和 nasm 的支持
nasm 的编译方法参考:https://www.buildlib.com/articles/nmake-build/windows-%e7%bc%96%e8%af%91nasm/
perl 可以下载预编译版本, 可以参考自编译:https://www.buildlib.com/articles/nmake-build/windows-%e7%bc%96%e8%af%91perl/
1. 下载 openssl1.x 版本
https://openssl-library.org/source/old/1.1.1/index.html
2. 解压到目录 F:\openssl-1.1.1w\openssl-1.1.1w
3. 打开 vs2022 的编译控制台,转到源码目录,输入 perl ./configure VC-WIN64A
4. 开始编译
4. 输入 nmake,= 待编译,结果如下