热门排行
简介
OpenSSL是一个功能丰富及自包含的安全开源工具箱,它提供的主要功能为SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能,OpenSSL是一个以C语言作为开发语言的工具包,它支持Linux、UNIX、windows、Mac等平台,所以它具有很好的跨平台性能。
经过 3 年的开发,17 个 alpha 版本,2 个 beta 版本,超过 7500 个提交,以及来自 350 位不同开发者的贡献,OpenSSL 3.0 终于正式发布了,需要的朋友可下载试试!
安装教程
win10下安装openssl
首先下载运行工具ActivePerl
执行:perl example.pl,若显示“Hello from ActivePerl!”,则说明Perl安装成功
安装到指定目录:perl configure VC-WIN32 no-asm --prefix=D:\appInstall\openssl-1.0.1t\openssl
ms\do_ms.bat
安装OpenSSL动态库:nmake -f ms\ntdll.mak install
安装OpenSSL静态库:nmake -f ms\nt.mak install
清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms\ntdll.mak clean
清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms\nt.mak clean
linux上安装Openssl
查看原有系统是否已安装Openssl
openssl version -a
安装
wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
tar xvzf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d
如果需要zlib压缩模块的话,还需要先安装zlib
然后:
./config --prefix=/usr/local/ssl shared zlib-dynamic
不需要就直接用:
./config --prefix=/usr/local/ssl shared no-zlib
更多详细帮助请运行
./config --help
然后:
make && make install
ARM平台的交叉编译安装:
编译:openssl
./config no-asm no-zlib --prefix=/arm/openssl os/compiler:arm-linux-gcc
修改:
CC= arm-linux-gcc
AR= arm-linux-ar $(ARFLAGS) r
RANLIB= arm-linux-ranlib
如果存在 -march=pentium 就去掉。
OpenSSL 1.1.1 以来的主要变化
主要版本
开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工作,只是需要重新编译(可能会有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。
如果应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要对应用进行更改。
许可证变更
在以前的版本中,OpenSSL 是在 OpenSSL 和 SSLeay 下获得许可的。从 OpenSSL 3.0 开始,已经过渡到了 Apache License 2.0。旧的 OpenSSL 和 SSLeay 许可证仍然适用于旧版本(1.1.1 和更早的版本)。
Providers 和 FIPS 支持
OpenSSL 1.1.1 的主要变化之一是引入了 Providers(提供者) 概念。Providers 聚集在一起并提供可用的算法实现。使用 OpenSSL 3.0,可以以编程方式或通过配置文件指定你希望用于任何给定应用程序的 Providers。OpenSSL 3.0 标配 5 个不同的 Providers。随着时间的推移,第三方可能会分发可以接入 OpenSSL 的其他 Providers。通过 Providers 提供的所有算法实现都可以通过“高级” API 访问,无法使用 “低级 API” 访问它们。
目前可用的一个标准 Providers 是 FIPS Providers。这使得 FIPS 验证的加密算法可用。FIPS Providers 默认处于禁用状态,需要在配置时使用enable-fips选项显式启用。如果启用,除了其他标准 Providers 之外,还会构建和安装 FIPS Providers,不需要单独的安装过程。
低级别的 API
OpenSSL 历来提供两套用于调用加密算法的 API:"高级" API(如 EVP API)和 "低级" API。高级别的 API 通常被设计成适用于所有算法类型。而 "低级" API 则是针对特定的算法实现的。长期以来,OpenSSL 开发团队一直不鼓励使用低级别的 API。在 OpenSSL 3.0 中,这一点变得更加明确。所有这些低级别的 API 都已经被废弃了。你仍然可以在你的应用程序中使用它们,但你可能会在编译过程中开始看到弃用警告。废弃的 API 可能会从未来的 OpenSSL 版本中删除,所以强烈建议开发者更新你的代码,以使用高级 API 来代替。
版本管理
OpenSSL 的版本管理已经随着 OpenSSL 3.0 的发布而改变,新的版本管理采用下方这样的格式:
MAJOR.MINOR.PATCH(主版本.次版本.补丁)
对于 OpenSSL 1.1.1 及以下版本,不同的补丁级别是由版本号后面的字母表示的,这一方法将不再使用,而是用版本号中的最后一个数字来表示补丁级别。第二个数字(MINOR)的变化表明可能已经添加了新的功能,但与相同 MAJOR 编号的 OpenSSL 在 API 和 ABI 上是兼容的。如果 MAJOR 数字发生变化,则不保证 API 和 ABI 的兼容性。