CentOS linux 安装openssl(openssl拒绝服务漏洞【CVE-2022-0778】解决)
一、安装
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.下载相关openssl包 下载地址: https://www.openssl.org/source/ 2.将下载好的压缩包放到 /app/server/nginx 路径下(根据自己实际需求定义) 3.切换至该路径 cd /app/server/nginx4.压缩包解压 压缩包解压 :tar -…...
假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中?
假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中? 问题解释:你有一个嵌套的集合,想要通过 Stream 流的方式将其中嵌套的集合放到一个新的集合中。可以使用 flatMap 方法来实现。这种方法非常适合处理嵌套集合的情况。…...
flutter doctor出现 Unable to find bundled Java version
在安装flutter时执行flutter doctor时出现了如下错误: [!] Android Studio (version 2022.1) ✗ Unable to find bundled Java version. 解决办法 检查下Applications/Android Studio.app/Contents目录下有没有jre文件夹,如果没有则创建一个&…...
Linux系统修改root密码
疑难杂症篇(十六)--虚拟机出现“The system is running in low-graphics mode“问题的解决方案_the system is running in low graphic-CSDN博客...
AI时代,我们还可以做什么?
最近看了本书,书名叫做《拐点:站在 AI 颠覆世界的前夜》,作者是万维钢。 本想着看完后,就能掌握一整套 AI 技巧,结果——竟然学了很多道理。 这本书讨论了以下话题: 我们该怎么理解这个 AI 大时代的哲学&am…...
【生成式人工智能-十-文字、图片、声音生成策略】
人工智能生成文字、图片、声音的方法 生成的本质生成的策略文字AR (Autoregressive Generation)图像和视频 NAR(Non-Autoregressive Generation)解决NAR生成品质低的问题 AR NAR 生成的本质 文字、图像、声音的生成的本质,就是给模型一个输入,模型把基…...
git pull 注意事项
当在执行 git pull 操作并且涉及到合并操作时,Git 会打开默认的文本编辑器(在这种情况下是 nano),以便你编写合并提交(merge commit)消息。这个消息将记录在合并提交中,解释为什么进行了这次合并…...
拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式
随着工业自动化的快速发展,特别是在石油、化工、煤矿等高风险行业中,传统的巡检方式已难以满足现代企业的需求。高频次、全天候、重复的人工巡检不仅效率低下,还面临着人身安全、数据准确性和运营成本等多方面的挑战。针对这些问题࿰…...
监听器——监听着我们WEB项目中的域对象
监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁 ServlertContextListener——它监听ServletContext对象的创建和销毁 contextInitialized 创建的时候会调用 Tomcat启动时调用 contextDestroyed销毁的时候自动会调用的方法 Tomcat终止 这两个方法中携带的参数S…...
cs使用说明
cs分为服务器端和客户端,服务器端最好在linux上配置,客户端在windows中配置,首先要在服务器端配置好,客户端连接才能生效 服务器端配置 将cs包发送到kali虚拟机中(压缩包解压密码为mht) 1,给与cs包最大的权限 chmod -…...
skynet 连接redis
文章目录 概述main.luaagent.luaredis.lua 小结 概述 之前写过skynet 入门篇,还有skynet实操篇;这2篇,主要写了skynet如何使用,还有些skynet的调用流程之类。 其实,看过skynet的demo之后,发现skynet中没有…...
quark-design 原生引入使用说明
说明:旧项目前后不分离 使用原生html开发的情况下 以动作面板举例: esm全局引入的方式 <script type"module"> import quarkd from "https://cdn.jsdelivr.net/npm/quarkd2.0.4/esm" //直接使用 quarkd.ActionSheet({actions: [{ name: "Opti…...
UE开发中的设计模式(二) —— 中介者模式
上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合,并通过一个实例具体实现了观察者模式,本篇文章从上篇文章的实例继续,介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…...
安卓应用开发学习:聚合数据API获取天气预报
一、引言 上个月我通过腾讯位置服务,实现了手机定位应用的开发学习。最近在看软件书籍时,又看到了聚合数据API方面的内容。 书上介绍了聚合数据天气预报API的应用,不过书上的代码看得有些难受,我到聚合数据官网,对天气…...
设计模式 - 抽象工厂模式
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、抽象工…...
塔子哥选数字-阿里淘天2024笔试(codefun2000)
题目链接 塔子哥选数字-阿里淘天2024笔试(codefun2000) 题目内容 塔子哥有一个长为n的数组a。他定义一个数组的权值为:数组中不同的数字个数。 塔子哥希望从数组a中选出在个数子,使得这k个数字组成的数组权值最大,请你帮帮塔子哥。 输入描述…...
【leetcode】杨辉三角(Java语言描述)
杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] …...
Vue - 关于vue-kinesis 移动动画组件
Vue - 关于vue-kinesis 移动动画组件 vue-kinesis可以根据鼠标移动或滚动条来控制元素动画的动画效果;除此之外,vue-kinesis 还可以设置音频文件,根据音频频率来控制动画的跳动效果。 一、安装vue-kinesis Vue2版本: 1.安装 …...
leetCode- - - 链表
目录 1.反转链表(leetcode206) 2. 链表内指定区间反转(leetcode92) 3.链表中的节点每k个一组翻转(leetcode25) 4.合并两个排序的链表(leetcode21) 5.链表的中间节点(…...
Ashok:一款多功能开源网络侦查OSINT工具
关于Ashok Ashok是一款多功能开源网络侦查公开资源情报OSINT工具,该工具可谓是OSINT领域中的瑞士军刀,广大研究人员可以使用该工具轻松完成网络侦查任务。 侦察是渗透测试的第一阶段,这意味着在计划任何实际攻击之前收集信息。因此ÿ…...
Ansys Circuit新手必看:导入IBIS模型时,Pin Import和Buffer Import到底怎么选?
Ansys Circuit实战指南:IBIS模型导入的Pin与Buffer选择策略 第一次打开Ansys Circuit准备进行SIPI仿真时,那个看似简单的IBIS模型导入界面往往会让新手工程师陷入沉思——Pin Import和Buffer Import这两个选项到底有什么区别?选择错误会导致仿…...
终极指南:yaml-cpp多版本共存方案与命名空间隔离
终极指南:yaml-cpp多版本共存方案与命名空间隔离 【免费下载链接】yaml-cpp A YAML parser and emitter in C 项目地址: https://gitcode.com/gh_mirrors/ya/yaml-cpp 在C项目中处理YAML配置文件时,yaml-cpp 是一个功能强大的解析器和发射器库。然…...
Phi-3-mini-128k-instruct企业级应用:基于Dify构建智能客服知识库
Phi-3-mini-128k-instruct企业级应用:基于Dify构建智能客服知识库 最近和几个做企业服务的朋友聊天,大家普遍有个头疼的问题:客服团队每天要处理大量重复的产品咨询和技术问题,人力成本高不说,新员工培训周期还特别长…...
.games 域名重塑数字娱乐边界
在互联网基础设施日益垂直化的今天,域名已不再仅仅是简单的网络地址,它已进化为一种数字资产的视觉锤和品牌战略的先导。在众多的新顶级域名(gTLD)中,“.games”凭借其鲜明的行业属性,正在重构全球游戏开发…...
别再为OpenBCI_GUI安装发愁了!保姆级教程带你从Processing配置到成功运行(附常见错误解决)
别再为OpenBCI_GUI安装发愁了!保姆级教程带你从Processing配置到成功运行(附常见错误解决) 第一次接触OpenBCI_GUI时,我完全理解那种面对陌生环境的无助感。作为一个开源脑机接口平台的核心组件,OpenBCI_GUI确实功能强…...
别再复制粘贴了!深入理解STM32中IIR滤波器的差分方程与状态变量
从零构建STM32 IIR滤波器:差分方程、状态变量与C语言实现全解析 在嵌入式信号处理领域,IIR(无限脉冲响应)滤波器因其高效的计算特性和优异的频率选择性能,成为STM32等资源受限平台的理想选择。但许多开发者仅仅停留在&…...
基于西门子1200PLC的六层电梯控制系统设计,含PLC程序和HMI仿真工程,适用于博途V14...
基于西门子1200PLC的六层电梯控制系统设计,含PLC程序和HMI仿真工程,适用于博途V14及以上版本 附赠IO点表、PLC接线图、主电路图和控制流程图 提供服务,确保正常运行电梯控制系统总被当作PLC入门经典案例,但真要在博途环境里实现六…...
PyTorch-CUDA-v2.7镜像应用场景:快速启动AI模型训练与推理
PyTorch-CUDA-v2.7镜像应用场景:快速启动AI模型训练与推理 1. 镜像概述与核心优势 PyTorch-CUDA-v2.7镜像是一个开箱即用的深度学习环境解决方案,专为需要快速启动AI模型训练与推理的开发者设计。这个预配置的Docker镜像集成了PyTorch 2.7框架和完整的…...
pinyinjs自定义字典扩展指南:打造专属拼音转换系统
pinyinjs自定义字典扩展指南:打造专属拼音转换系统 【免费下载链接】pinyinjs 一个实现汉字与拼音互转的小巧web工具库,演示地址: 项目地址: https://gitcode.com/gh_mirrors/pi/pinyinjs pinyinjs是一个实现汉字与拼音互转的小巧web工…...
DeepSeek LintCode 3706 · 满足条件的数对的数量 public long countValidPairs(int[] nums1, int[] nums2, int dif
这个问题是 LintCode 3706 “满足条件的数对的数量”,要求统计满足 nums1[i] - nums1[j] < nums2[i] - nums2[j] diff(其中 i < j)的数对 (i, j) 的数量。 问题理解 给定两个数组 nums1 和 nums2,以及一个整数 diff&#…...
