OpenSSL 升级、回滚

openssl,升级 · 浏览次数 : 452

小编点评

**问题:** 在安装 Python 3.x 版本之前,您需要将 OpenSSL 1.0.2k-fips 版本编译和安装。然而,您使用的 `urllib3` 模块可能指向旧的 OpenSSL 版本,导致导入错误。 **解决方案:** 1. **检查 `urllib3` 模块版本:** ```python import urllib3 print(urllib3.__version__) ``` 2. **如果 `urllib3` 版本低于 2.0,请升级 `urllib3`:** ``` pip install urllib3 ``` 3. **重新安装 `urllib3` 模块:** ``` pip uninstall urllib3 pip install urllib3 ``` 4. **重新编译 `urllib3` 模块:** ``` pip install --upgrade urllib3 ``` 5. **重新安装 OpenSSL:** ``` sudo apt-get install openssl ``` 6. **设置 `urllib3` 模块:** ```python import urllib3 # 设置 `PYTHONPATH` 环境变量,以覆盖默认路径 os.environ["PYTHONPATH"] += os.getenv("PATH") # 重新启动 Python 3.x os.system("python3 -m venv venv; source venv/bin/activate;") ``` 7. **验证 OpenSSL 版本:** ```python import urllib3 print(urllib3.__version__) ``` 如果您的 `urllib3` 版本已更新到 2.0 或更高版本,则应该能正常导入 OpenSSL。

正文

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2k-fips 26 Jan 2017. See: https://github.com/urllib3/urllib3/issues/2168

安装

[root@localhost pdserving]# openssl version
# 备份
[root@localhost pdserving]# cp -r /usr/bin/openssl /usr/bin/openssl_bak
[root@localhost pdserving]# cp -r /usr/include/openssl /usr/include/openssl_bak
[root@localhost pdserving]# cd /usr/local/
# 下载 OpenSSL
[root@localhost local]# wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1t.tar.gz
[root@localhost local]# tar -zxvf openssl-1.1.1t.tar.gz
[root@localhost local]# cd openssl-1.1.1
# 配置
[root@localhost local]# ./config --prefix=/opt/openssl --openssldir=/usr/local/ssl
# 编译&安装
[root@localhost local]# make &&make install

如下图可以看出,程序被安装到了 /opt/openssl 目录下了
image

设置软连接

[root@localhost openssl-1.1.1t]# ln -s /opt/openssl/bin/openssl /usr/bin/openssl
ln: 无法创建符号链接"/usr/bin/openssl": 文件已存在
# 如已存在先将原来的软连接文件mv到/tmp目录下,
[root@localhost openssl-1.1.1t]# mv /usr/bin/openssl /tmp/

# 设置软连接
[root@localhost openssl-1.1.1t]# ln -s /opt/openssl/bin/openssl /usr/bin/openssl
[root@localhost openssl-1.1.1t]# ln -s /opt/openssl/include/openssl /usr/include/openssl
[root@localhost openssl-1.1.1t]# openssl version 
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
[root@localhost openssl-1.1.1t]# ll /opt/openssl/lib/
总用量 10528
drwxr-xr-x. 2 root root      39 5月  18 13:37 engines-1.1
-rw-r--r--. 1 root root 5655624 5月  18 13:37 libcrypto.a
lrwxrwxrwx. 1 root root      16 5月  18 13:37 libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x. 1 root root 3397152 5月  18 13:37 libcrypto.so.1.1
-rw-r--r--. 1 root root 1028434 5月  18 13:37 libssl.a
lrwxrwxrwx. 1 root root      13 5月  18 13:37 libssl.so -> libssl.so.1.1
-rwxr-xr-x. 1 root root  689576 5月  18 13:37 libssl.so.1.1
drwxr-xr-x. 2 root root      61 5月  18 13:37 pkgconfig
# 已存以先移除 
# mv /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1.bak
# mv /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1.bak
[root@localhost openssl-1.1.1t]# ln -s /opt/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@localhost openssl-1.1.1t]# ln -s /opt/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[root@localhost openssl-1.1.1t]# echo "/usr/local/lib/" >> /etc/ld.so.conf
[root@localhost openssl-1.1.1t]# ldconfig -v
[root@localhost openssl-1.1.1t]# openssl version -a
OpenSSL 1.1.1t  7 Feb 2023

回滚

升级后可能会导致某些服务安装失败,回滚到之前的默认版本【以下没测试】

# 查看openssl, 然后删除升级后的openssl
[root@localhost ~]# find / -name openssl
[root@localhost ~]# rm -rf /usr/local/src/openssl-1.1.1
[root@localhost ~]# rm -rf /usr/local/bin/openssl
[root@localhost ~]# rm -rf /usr/local/share/doc/openssl
[root@localhost ~]# rm -rf /usr/local/include/openssl

# 然后查看下openssl版本
[root@localhost ~]# which openssl
/usr/bin/openssl
[root@localhost ~]# openssl version -a
# 报错说/usr/local/bin/openssl 找不到这个文件

# 然后重启机器
[root@localhost ~]# init 6

# 重启机器后, 查看openssl版本, 如果正常查出是默认版本, 则回滚正常
[root@localhost ~]# openssl version -a

与OpenSSL 升级、回滚相似的内容:

OpenSSL 升级、回滚

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2k-fips 26 Jan 2017. See: https://gith

[转帖]编译升级openssl和openssh版本脚步

https://www.cnblogs.com/zhangb8042/p/15800738.html #!/bin/bash build_dir=/data/project_build openssl_download=https://www.openssl.org/source/openssl-1

OpenSSH 9.2P1升级以及版本显示的处理过程

说明 本次维护的时间是 2023-2-9 最新已发布的补丁是 OpenSSH9.2P1版本 其他本本应该是类似处理. 下载介质 在 OpenSSH官网打开相关界面. http://www.openssh.com/ 打开 For Other systems 打开release界面.比如我这边使用这个m

readhat8搭建SFTP双机高可用并配置Rsync数据实时同步

环境准备: 主机 host-61-118 : 192.168.61.118 host-61-119:192.168.61.119 vip:192.168.61.220 检测openssh版本,版本必须大于4.8.p1,否则需要升级openssh版本 [root@host-61-118 ~]# ssh

openssh 修改版本号显示

#背景介绍:G端项目经常收到相关漏洞但有时升级最新版本(8.8p)还是会有相关漏洞(CVE-2020-15778),只能禁用相关命令或修改版本号 #漏洞名称OpenSSH 命令注入漏洞(CVE-2020-15778) #详细描述OpenSSH(OpenBSD Secure Shell)是OpenBS

[转帖]OpenSSL版本历史

OpenSSL版本历史 新闻日志 这是所有 OpenSSL 公告的简洁日志。它们几乎是发布通知。 日期物品 2021 年 7 月 29 日OpenSSL 3.0 的 Beta 2 现已推出。这是一个候选版本:请下载并测试它 2021 年 6 月 17 日新博客文章:OpenSSL 3.0 候选版本

OpenSSL 生成 RootCA (根证书)并自签署证书(支持 IP 地址)

背景 某机房内部访问需要配置 HTTPS,网上找的一些证书教程都不是特别好,有些直接生成证书,没有根 CA 的证书导致信任不了 Ubuntu 机器,有些教程只有域名生成,没有 IP 生成,有些甚至报错。故发一个笔者在 Ubuntu 22.04 机器上测试正确可用的流程,这里使用 10.12.0.2

Ubuntu中安装OpenSSL

一、前期准备 1.1 压缩包下载 在安装openssl之前,我们需要下载对应的压缩包 https://www.openssl.org/source/openssl-3.0.1.tar.gz 此压缩包可以选择win上下载后解压再复制到本地虚拟机中,也可以选择直接在本地虚拟机中使用wget命令进行下载。

[转帖]使用 OpenSSL 加密和解密文件

https://linux.cn/article-13368-1.html OpenSSL 是一个实用工具,它可以确保其他人员无法打开你的敏感和机密消息。 加密是对消息进行编码的一种方法,这样可以保护消息的内容免遭他人窥视。一般有两种类型: 密钥加密或对称加密 公钥加密或非对称加密 密钥加密secr

nginx+keepalived+pgsql+mysql+redis+tomcat离线部署过程

gcc pcre-devel openssl-devel zlib-devel离线安装包: [包含云盘地址.txt](https://codor.lanzoue.com/iAC7N0sj6vdi) 离线部署java+nginx+tomcat+pgsql+redis.zip: - 城通网盘: http