一、安装

1.下载相关openssl包

下载地址: https://www.openssl.org/source/

2.将下载好的压缩包放到 /app/server/nginx 路径下(根据自己实际需求定义)

3.切换至该路径

cd /app/server/nginx

4.压缩包解压

压缩包解压 :tar -zxvf openssl-3.0.0.tar.gz

5.切换到解压后的路劲

cd openssl-3.0.0

6.查看一下原安装版本

openssl version -a

7.设置配置

./config --prefix=/usr/local/openssl3.0.0 --openssldir=/usr/local/openssl3.0.0 shared zlib

①可能出现错误

1)安装gcc(编译依赖 gcc 环境)

yum install gcc-c++

2)安装 PCRE pcre-devel (包括 perl 兼容的正则表达式库)

yum install -y pcre pcre-devel

3)安装zlib(对 http 包的内容进行 gzip)

yum install -y zlib zlib-devel

②还可能出现的错误

Cant't locate IPC/Cmd.pm .......

需安装perl-IPC-Cmd包

执行命令

yum -y install perl-IPC-Cmd

8.编译安装(编译安装完不报错将会安装到 /usr/local/openssl3.0.0)

make
make install

二、配置链接库

1.在目录/etc/ld.so.conf.d目录下创建一个名为openssl-3.0.0.conf的文件

cd /etc/ld.so.conf.d
vim openssl-3.0.0.conf

2.输入(i:启用编辑,esc:退出编辑,:wq:保存退出,:q!:不保存退出)

/usr/local/openssl3.0.0/lib64

3.创建软链接

ln -s /usr/local/openssl3.0.0/lib64/libssl.so.3 /usr/lib64/
ln -s /usr/local/openssl3.0.0/lib64/libcrypto.so.3 /usr/lib64/

若报已存在(File exist),则进行覆盖

ln -sf /usr/local/openssl3.0.0/lib64/libssl.so.3 /usr/lib64/ln -sf /usr/local/openssl3.0.0/lib64/libcrypto.so.3 /usr/lib64/

4.重新加载动态链接

ldconfig -v

三、配置环境变量

1.备份旧的配置(/usr/bin/openssl为上个版本安装路径,此处为系统默认路径)

mv /usr/bin/openssl /usr/bin/openssl.backup

2.创建环境变量文件

vim /etc/profile.d/openssl.sh

3.写入

#Set OPENSSL_PATH
OPENSSL_PATH="/usr/local/openssl3.0.0/bin"
export OPENSSL_PATH
PATH=$PATH:$OPENSSL_PATH
export PATH

4.执行openssl.sh 文件,并输出环境变量

chmod +x /etc/profile.d/openssl.sh
source /etc/profile.d/openssl.sh
echo $PATH

5.检查OpenSSL位置

which openssl

6.检查系统配置

openssl version -a

2022-03-15

openssl出现拒绝服务漏洞【CVE-2022-0778】

由于证书解析时使用的 BN_mod_sqrt() 函数存在一个错误,它会导致在非质数的情况下永远循环。可通过生成包含无效的显式曲线参数的证书来触发无限循环。由于证书解析是在验证证书签名之前进行的,因此任何解析外部提供的证书的程序都可能受到拒绝服务攻击。此外,当解析特制的私钥时(包含显式椭圆曲线参数),也可以触发无限循环。

影响范围:

OpenSSL版本1.0.2:1.0.2-1.0.2zc

OpenSSL版本1.1.1:1.1.1-1.1.1m

OpenSSL版本 3.0:3.0.0、3.0.1

官方修复提交记录:

https://github.com/openssl/openssl/commit/9eafb53614bf65797db25f467946e735e1b43dc9#

解决办法:

openssl3.0.0升级到->openssl3.0.2

与上述安装步骤一致(将其中的其中openssl3.0.0修改为openssl3.0.2)

其中注意事项:

  • 创建软链接时,需进行覆盖

  • ln -sf /usr/local/openssl3.0.2/lib64/libssl.so.3 /usr/lib64/
    ln -sf /usr/local/openssl3.0.2/lib64/libcrypto.so.3 /usr/lib64/
  • 备份时,需将路径修改为上次安装openssl的路径

  • mv /usr/local/openssl3.0.0 /usr/bin/openssl.backup
  • 升级完毕后,如果使用的nginx做服务分发代理,nginx需重新编译安装,其中openssl依赖路径修改为最新路径(nginx安装可看:CentOS linux安装nginx


结束

CentOS linux 安装openssl(openssl拒绝服务漏洞【CVE-2022-0778】解决)的更多相关文章

  1. Linux Kernel‘ieee80211_radiotap_iterator_init()’函数拒绝服务漏洞

    漏洞名称: Linux Kernel‘ieee80211_radiotap_iterator_init()’函数拒绝服务漏洞 CNNVD编号: CNNVD-201312-041 发布时间: 2013- ...

  2. Linux kernel ‘ip6_sk_dst_check’函数拒绝服务漏洞

    漏洞名称: Linux kernel ‘ip6_sk_dst_check’函数拒绝服务漏洞 CNNVD编号: CNNVD-201307-070 发布时间: 2013-07-05 更新时间: 2013- ...

  3. Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题)

    Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题) rpm安装gcc时碰到的有关问题解决(解决gcc依赖有关问题) 提示:error: Failed dependencies: clo ...

  4. CentOS Linux安装python3

    本文的方法是在CentOS上新装了python3,如果本机安装了python2则保留,因为可能有程序依赖目前的python2环境,比如yum!!!!! 一.安装python3.7 1. 安装依赖环境 ...

  5. CentOs linux安装SVN服务

    SVN服务器有2种运行方式:1.独立服务器(例如:svn://xxx.com/xxx):2.借助apache   (例如:http://svn.xxx.com/xxx):为了不依赖apache,我选择 ...

  6. linux(kali,centos)安装vm及其提示缺少c头文件解决方法

    我电脑系统是kali最新版 首先去官网下一个vm安装包,给个直达网址 http://www.vmware.com/cn/products/workstation/workstation-evaluat ...

  7. [转]CENTOS LINUX安装并使用NFS共享文件

    FROM :http://www.qiansw.com/centos-linux-nfs.html NFS是linux常用的一种文件分享工具. 下面介绍安装及使用方法. CentOS 5.5 yum ...

  8. CentOS Linux 安装IPSec+L2TP

    第二层隧道协议L2TP(Layer 2 Tunneling Protocol)是一种工业标准的Internet隧道协议,它使用UDP的1701端口进行通信.L2TP本身并没有任何加密,但是我们可以使用 ...

  9. Docker 安装入门 Centos Linux安装Docker 部署mysql

    这次购买了阿里云云服务器,并且安装了Centos 7.5 学习使用Docker, 确认版本信息 Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上. Dock ...

  10. centos linux安装telnet 过程及问题(源于内部tomcat网站,外部无法访问)

    首先本地没有telnet客户端及服务器 root权限下安装 yum install telnet yum install telnet-server vi /etc/xinetd.d/telnet 这 ...

随机推荐

  1. c++:-0

    了解 特征 1.继承 2.多态 打球:打乒乓球.打篮球 3.封装 例: class Clock { public: void setTime(int newH, int newM, int newS) ...

  2. linux安装wps

     1. http://wps-community.org/downloads 下载            wps-office_10.1.0.5672~a21_i386.deb            ...

  3. 炸裂:SpringAI内置DeepSeek啦!

    好消息,Spring AI 最新快照版已经内置 DeepSeek 了,所以以后项目中对接 DeepSeek 就方便多了.但因为快照版会有很多 Bug,所以今天咱们就来看稳定版的 Spring AI 如 ...

  4. 基于stm32+esp8266通过阿里云物联网平台和MQTT实现智慧粮仓环境监测管理系统

    基于STM32+ESP8266通过阿里云物联网平台和MQTT实现智慧粮仓环境监测管理系统 技术要点:STM32f407.ESP8266.阿里云物联网平台IOT.MQTT.JSON数据解析. 1.功能与 ...

  5. docker - [10] 容器数据卷

    将应用和环境打包成一个镜像,然后发布启动就成为一个容器了. 一.什么是容器数据卷   容器数据卷(Container Data Volumes)是Docker管理的一种特殊类型的存储区域,它为容器提供 ...

  6. 启动Eclipse时报错如何解决?

    启动Eclipse出现弹框,弹框报错内容如下: A Java Runtime Enviroment(JRE)or Java Development Kit(JDK) must be available ...

  7. 1Panel 专业版评测:全面超越宝塔的运维面板新标杆

    一. UX体验与移动端适配:更直观的跨平台交互 1Panel 专业版在用户体验上实现了对宝塔的全面超越.其界面采用现代化设计语言,以黑金主题为代表的可定制化主题系统支持一键切换,视觉风格更符合技术审美 ...

  8. 【忍者算法】从快慢指针到倒数查找:优雅解决链表倒数问题|LeetCode第19题"删除链表的倒数第N个结点"

    从快慢指针到倒数查找:优雅解决链表倒数问题 从生活场景说起 想象你在一个漫长的队伍中,想知道自己距离队尾还有多少人.一个巧妙的方法是:让你的朋友从你所在位置往后数N步,然后你和朋友一起向后走.当朋友走 ...

  9. Joker 前端框架组件的生命周期:深度解析与实践应用

    在 Joker 前端框架的开发体系中,组件的生命周期犹如一颗精准的导航星,指引着开发者构建高效.稳定且富有交互性的应用程序.它完整地涵盖了从组件实例诞生的那一刻起,直至其完成使命被销毁的全过程,每一个 ...

  10. gazebo+rviz 仿真

    博客地址:https://www.cnblogs.com/zylyehuo/ gazebo小车模型创建及键盘操控详见之前的博客 gazebo小车模型(附带仿真环境) - zylyehuo - 博客园 ...