2020-04-21 1.1.1g 版本紧急修复

2020年4月21日,OpenSSL官网更新了1.1.1g版本,并指出了之前的版本有着重大的缺陷漏洞,以下摘自翻译后的官网原文:


严重程度:高

在TLS 1.3握手期间或之后调用 SSL_check_chain() 函数的服务器或客户端应用程序可能会由于对NULL指针的取消引用而崩溃,这是由于对“ signature_algorithms_cert” TLS扩展的不正确处理导致的。
如果从对等方收到无效或无法识别的签名算法,则会发生崩溃。恶意对等方可以在“拒绝服务”攻击中利用此漏洞。

OpenSSL版本1.1.1d,1.1.1e和1.1.1f受此问题影响。这个问题不影响1.1.1d之前的OpenSSL版本。

受影响的OpenSSL 1.1.1用户应升级到1.1.1g


安装 Strawberry Prel

前往 Strawberry Prel 官网下载并安装 Strawberry Prel
这里选择的是 Strawberry Prel 5.32.0.1
安装过程中务必选择完整安装

安装 NASM

前往 NASM 官网下载并安装 NASM
这里选择的是 Stable 的 2.15.05

安装完成后要将NASM的路径添加到环境变量,安装程序不会自动添加

下载源代码

前往 OpenSSL 官网下载 openssl-1.1.1i.tar.gz 并解压

编译

VC编译环境

Visual Studio 在安装时必须勾选 Windows C++ 的开发环境,不然没法打开开发人员命令提示符

Snipaste_2020-04-23_14-08-13.png

启动命令行提示工具

【2020年5月25日更新】
使用 VS2019 的开发人员提示工具切换到源码目录,注意选择要编译的位数所对应的版本,不要选择cross版本。所有的选项都要统一,即:编译32位的就启动x86,配置Makefile时为命令行为VC-WIN32,64位同理,本文以编译64位为例。

根据下图打钩的图标,确定需要编译的位数,选择合适的命令提示符。
1副本.jpg

进入源码目录
$ cd /d C:\openssl-1.1.1i
配置 makefile

64位版本 - VC-WIN64A
32位版本 - VC-WIN32
prefix后面为安装目录,为了区分多个版本,故将每个版本分在了不同的路径

$ perl Configure VC-WIN64A --prefix=D:\OpenSSL\1.1.1i
开始编译及安装

执行 nmake 开始编译
整个过程视机器配置而定,单线程编译持续约5-10分钟

$ nmake

执行 nmake install 开始安装

$ nmake install
添加环境变量

将编译后的安装目录下的 bin 文件夹添加到系统 Path 目录下
打开cmd测试安装

$ openssl version
OpenSSL 1.1.1i  8 Dec 2020
清理生成的中间文件
$ nmake clean

结尾语

如果在配置或者编译有任何问题或者报错,请在下方留言或直接在关于页面联系我~

最后修改:2020 年 12 月 19 日 12 : 57 AM
如果觉得我的文章不错的话,请我喝一杯咖啡吧~