什么是openssl
openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。
openssl采用C语言作为开发语言,这使得它具有优秀的跨平台性能。openssl支持Linux、UNIX、windows、Mac等平台。
OpenSSL出现的漏洞
CVE-2020-1971 OpenSSL拒绝服务漏洞
详情:OpenSSL 在处理 EDIPartyName (X.509 GeneralName类型标识)的时候存在一处空指针解引用,并引起程序崩溃导致拒绝服务。远程攻击者通过构造特制的证书验证过程触发该漏洞,并导致服务端拒绝服务,影响业务/功能正常运行。
影响版本:OpenSSL: >1.1.1;<1.1.1h||>1.0.2;<1.0.2w
CVE-2022-1292 OpenSSL操作系统命令注入漏洞
详情:OpenSSL 存在操作系统命令注入漏洞,该漏洞源于c_rehash 脚本未正确清理 shell 元字符导致命令注入。攻击者利用该漏洞执行任意命令。
影响版本:OpenSSL: >=1.0.2,<=1.0.2zd||>=1.1.1,<=1.1.1n||>=3.0.0,<=3.0.2
如何升级OpenSSL到1.1.1最新版本
安装必要的依赖
# 安装zlib库
yum install -y zlib zlib-devel
#安装gcc、c++编译器以及内核文件
yum -y install gcc gcc-c++ kernel-devel
# 安装Perl
yum install perl
yum install cpan
下载最新文件并升级
OpenSSL官网地址:www.openssl.org/source/ ,选择1.1.1最新版本进行下载,并上传到服务器上。
# 解压文件
tar -zxvf openssl-1.1.1i
cd openssl-1.1.1i
# 配置,其中--prefix是指定安装目录的,shared zlib库是在安装时寻找zlib库依赖的,都不能少
./config --prefix=/usr/local/openssl shared zlib
make depend
make && make install
配置使用最新的版本
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
# 把新的库文件地址写入记录so库的配置文件中去
echo "/opt/openssl/lib/" >> /etc/ld.so.conf
# 使配置生效并打印出来,如果不想显示具体内容,可以ldconfig
ldconfig -v
做一个软连接
ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/
ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/
ldconfig
查看版本
openssl version